<!-- HTML header for doxygen 1.8.9.1-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<meta name="robots" content="NOINDEX, NOFOLLOW" /> <!-- Prevent indexing by search engines -->
<title>Compute Library: arm_compute::test Namespace Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { init_search(); });
</script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
</script><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">Compute Library
   &#160;<span id="projectnumber">18.05</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.xhtml"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.xhtml"><span>Related&#160;Pages</span></a></li>
      <li class="current"><a href="namespaces.xhtml"><span>Namespaces</span></a></li>
      <li><a href="annotated.xhtml"><span>Data&#160;Structures</span></a></li>
      <li><a href="files.xhtml"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="namespaces.xhtml"><span>Namespace&#160;List</span></a></li>
      <li><a href="namespacemembers.xhtml"><span>Namespace&#160;Members</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('namespacearm__compute_1_1test.xhtml','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#namespaces">Namespaces</a> &#124;
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a>  </div>
  <div class="headertitle">
<div class="title">arm_compute::test Namespace Reference</div>  </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespacearm__compute_1_1test_1_1benchmark"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1benchmark.xhtml">benchmark</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:namespacearm__compute_1_1test_1_1convolution__3d"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1convolution__3d.xhtml">convolution_3d</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:namespacearm__compute_1_1test_1_1fixed__point__arithmetic"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic.xhtml">fixed_point_arithmetic</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:namespacearm__compute_1_1test_1_1framework"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1framework.xhtml">framework</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:namespacearm__compute_1_1test_1_1networks"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1networks.xhtml">networks</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:namespacearm__compute_1_1test_1_1traits"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1traits.xhtml">traits</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:namespacearm__compute_1_1test_1_1validation"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test_1_1validation.xhtml">validation</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1test_1_1_accessor.xhtml">Accessor</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classarm__compute_1_1test_1_1_accessor.xhtml" title="Accessor implementation for Tensor objects. ">Accessor</a> implementation for <a class="el" href="classarm__compute_1_1_tensor.xhtml">Tensor</a> objects.  <a href="classarm__compute_1_1test_1_1_accessor.xhtml#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1test_1_1_array_accessor.xhtml">ArrayAccessor</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classarm__compute_1_1test_1_1_array_accessor.xhtml" title="ArrayAccessor implementation for Array objects. ">ArrayAccessor</a> implementation for <a class="el" href="classarm__compute_1_1_array.xhtml">Array</a> objects.  <a href="classarm__compute_1_1test_1_1_array_accessor.xhtml#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1test_1_1_assets_library.xhtml">AssetsLibrary</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Factory class to create and fill tensors.  <a href="classarm__compute_1_1test_1_1_assets_library.xhtml#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1test_1_1_c_l_accessor.xhtml">CLAccessor</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classarm__compute_1_1test_1_1_accessor.xhtml" title="Accessor implementation for Tensor objects. ">Accessor</a> implementation for <a class="el" href="classarm__compute_1_1_c_l_tensor.xhtml">CLTensor</a> objects.  <a href="classarm__compute_1_1test_1_1_c_l_accessor.xhtml#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1test_1_1_c_l_array_accessor.xhtml">CLArrayAccessor</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classarm__compute_1_1test_1_1_accessor.xhtml" title="Accessor implementation for Tensor objects. ">Accessor</a> implementation for <a class="el" href="classarm__compute_1_1_c_l_array.xhtml">CLArray</a> objects.  <a href="classarm__compute_1_1test_1_1_c_l_array_accessor.xhtml#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1test_1_1_c_l_h_o_g_accessor.xhtml">CLHOGAccessor</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classarm__compute_1_1test_1_1_accessor.xhtml" title="Accessor implementation for Tensor objects. ">Accessor</a> implementation for <a class="el" href="classarm__compute_1_1_c_l_h_o_g.xhtml">CLHOG</a> objects.  <a href="classarm__compute_1_1test_1_1_c_l_h_o_g_accessor.xhtml#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1test_1_1_c_l_lut_accessor.xhtml">CLLutAccessor</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classarm__compute_1_1test_1_1_accessor.xhtml" title="Accessor implementation for Tensor objects. ">Accessor</a> implementation for <a class="el" href="classarm__compute_1_1_c_l_lut.xhtml">CLLut</a> objects.  <a href="classarm__compute_1_1test_1_1_c_l_lut_accessor.xhtml#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1test_1_1_c_l_synthetize_function.xhtml">CLSynthetizeFunction</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">This template synthetizes an <a class="el" href="classarm__compute_1_1_i_c_l_simple_function.xhtml" title="Basic interface for functions which have a single OpenCL kernel. ">ICLSimpleFunction</a> which runs the given kernel K.  <a href="classarm__compute_1_1test_1_1_c_l_synthetize_function.xhtml#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1test_1_1_c_l_synthetize_function_with_zero_constant_border.xhtml">CLSynthetizeFunctionWithZeroConstantBorder</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">As above but this also setups a Zero border on the input tensor of the specified bordersize.  <a href="classarm__compute_1_1test_1_1_c_l_synthetize_function_with_zero_constant_border.xhtml#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarm__compute_1_1test_1_1common__promoted__signed__type.xhtml">common_promoted_signed_type</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find the signed promoted common type.  <a href="structarm__compute_1_1test_1_1common__promoted__signed__type.xhtml#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarm__compute_1_1test_1_1common__promoted__unsigned__type.xhtml">common_promoted_unsigned_type</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find the unsigned promoted common type.  <a href="structarm__compute_1_1test_1_1common__promoted__unsigned__type.xhtml#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1test_1_1_g_c_accessor.xhtml">GCAccessor</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classarm__compute_1_1test_1_1_accessor.xhtml" title="Accessor implementation for Tensor objects. ">Accessor</a> implementation for <a class="el" href="classarm__compute_1_1_g_c_tensor.xhtml">GCTensor</a> objects.  <a href="classarm__compute_1_1test_1_1_g_c_accessor.xhtml#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1test_1_1_h_o_g_accessor.xhtml">HOGAccessor</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classarm__compute_1_1test_1_1_accessor.xhtml" title="Accessor implementation for Tensor objects. ">Accessor</a> implementation for <a class="el" href="classarm__compute_1_1_h_o_g.xhtml">HOG</a> objects.  <a href="classarm__compute_1_1test_1_1_h_o_g_accessor.xhtml#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1test_1_1_i_accessor.xhtml">IAccessor</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Common interface to provide information and access to tensor like structures.  <a href="classarm__compute_1_1test_1_1_i_accessor.xhtml#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1test_1_1_i_array_accessor.xhtml">IArrayAccessor</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Common interface to provide information and access to array like structures.  <a href="classarm__compute_1_1test_1_1_i_array_accessor.xhtml#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1test_1_1_i_h_o_g_accessor.xhtml">IHOGAccessor</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Common interface to access <a class="el" href="classarm__compute_1_1_h_o_g.xhtml" title="CPU implementation of HOG data-object. ">HOG</a> structure.  <a href="classarm__compute_1_1test_1_1_i_h_o_g_accessor.xhtml#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1test_1_1_i_lut_accessor.xhtml">ILutAccessor</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Common interface to provide information and access to <a class="el" href="classarm__compute_1_1_lut.xhtml" title="Basic implementation of the LUT interface. ">Lut</a> like structures.  <a href="classarm__compute_1_1test_1_1_i_lut_accessor.xhtml#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1test_1_1_lut_accessor.xhtml">LutAccessor</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classarm__compute_1_1test_1_1_accessor.xhtml" title="Accessor implementation for Tensor objects. ">Accessor</a> implementation for <a class="el" href="classarm__compute_1_1_lut.xhtml">Lut</a> objects.  <a href="classarm__compute_1_1test_1_1_lut_accessor.xhtml#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1test_1_1_n_e_synthetize_function.xhtml">NESynthetizeFunction</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">This template synthetizes an <a class="el" href="classarm__compute_1_1_i_n_e_simple_function.xhtml" title="Basic interface for functions which have a single NEON kernel. ">INESimpleFunction</a> which runs the given kernel K.  <a href="classarm__compute_1_1test_1_1_n_e_synthetize_function.xhtml#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1test_1_1_n_e_synthetize_function_with_zero_constant_border.xhtml">NESynthetizeFunctionWithZeroConstantBorder</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">As above but this also setups a Zero border on the input tensor of the specified bordersize.  <a href="classarm__compute_1_1test_1_1_n_e_synthetize_function_with_zero_constant_border.xhtml#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1test_1_1_padding_calculator.xhtml">PaddingCalculator</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate required padding.  <a href="classarm__compute_1_1test_1_1_padding_calculator.xhtml#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1test_1_1_raw_lut_accessor.xhtml">RawLutAccessor</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classarm__compute_1_1test_1_1_accessor.xhtml" title="Accessor implementation for Tensor objects. ">Accessor</a> implementation for std::map-lut objects.  <a href="classarm__compute_1_1test_1_1_raw_lut_accessor.xhtml#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1test_1_1_raw_tensor.xhtml">RawTensor</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Subclass of <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml" title="Simple tensor object that stores elements in a consecutive chunk of memory. ">SimpleTensor</a> using uint8_t as value type.  <a href="classarm__compute_1_1test_1_1_raw_tensor.xhtml#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Simple tensor object that stores elements in a consecutive chunk of memory.  <a href="classarm__compute_1_1test_1_1_simple_tensor.xhtml#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1test_1_1_tensor_cache.xhtml">TensorCache</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores <a class="el" href="classarm__compute_1_1test_1_1_raw_tensor.xhtml">RawTensor</a> categorised by the image they are created from including name, format and channel.  <a href="classarm__compute_1_1test_1_1_tensor_cache.xhtml#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ab3a61953b0f41e932f8a2ce8918e7aec"><td class="memTemplParams" colspan="2">template&lt;typename O , typename F , typename... As&gt; </td></tr>
<tr class="memitem:ab3a61953b0f41e932f8a2ce8918e7aec"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test.xhtml#ab3a61953b0f41e932f8a2ce8918e7aec">apply</a> (O *obj, F &amp;&amp;func, const std::tuple&lt; As... &gt; &amp;args)</td></tr>
<tr class="separator:ab3a61953b0f41e932f8a2ce8918e7aec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa18932675cbb5eb9c9dbf8ff4d7106c7"><td class="memTemplParams" colspan="2">template&lt;typename T , typename std::enable_if&lt; std::is_same&lt; typename T::value_type, std::string &gt;::value, int &gt;::type  = 0&gt; </td></tr>
<tr class="memitem:aa18932675cbb5eb9c9dbf8ff4d7106c7"><td class="memTemplItemLeft" align="right" valign="top">std::string&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test.xhtml#aa18932675cbb5eb9c9dbf8ff4d7106c7">join</a> (T first, T last, const std::string &amp;separator)</td></tr>
<tr class="memdesc:aa18932675cbb5eb9c9dbf8ff4d7106c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper function to concatenate multiple strings.  <a href="#aa18932675cbb5eb9c9dbf8ff4d7106c7">More...</a><br /></td></tr>
<tr class="separator:aa18932675cbb5eb9c9dbf8ff4d7106c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a898a0423aace06af0f3a18a26a972a1a"><td class="memTemplParams" colspan="2">template&lt;typename T , typename UnaryOp &gt; </td></tr>
<tr class="memitem:a898a0423aace06af0f3a18a26a972a1a"><td class="memTemplItemLeft" align="right" valign="top">std::string&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test.xhtml#a898a0423aace06af0f3a18a26a972a1a">join</a> (T &amp;&amp;first, T &amp;&amp;last, const std::string &amp;separator, UnaryOp &amp;&amp;op)</td></tr>
<tr class="memdesc:a898a0423aace06af0f3a18a26a972a1a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper function to concatenate multiple values.  <a href="#a898a0423aace06af0f3a18a26a972a1a">More...</a><br /></td></tr>
<tr class="separator:a898a0423aace06af0f3a18a26a972a1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a69835710fc772315f4e65ce156034530"><td class="memTemplParams" colspan="2">template&lt;typename T , typename std::enable_if&lt; std::is_arithmetic&lt; typename T::value_type &gt;::value, int &gt;::type  = 0&gt; </td></tr>
<tr class="memitem:a69835710fc772315f4e65ce156034530"><td class="memTemplItemLeft" align="right" valign="top">std::string&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test.xhtml#a69835710fc772315f4e65ce156034530">join</a> (T &amp;&amp;first, T &amp;&amp;last, const std::string &amp;separator)</td></tr>
<tr class="memdesc:a69835710fc772315f4e65ce156034530"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper function to concatenate multiple values.  <a href="#a69835710fc772315f4e65ce156034530">More...</a><br /></td></tr>
<tr class="separator:a69835710fc772315f4e65ce156034530"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b67cbf475b1e1d3bec9b0b937fdafac"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test.xhtml#a5b67cbf475b1e1d3bec9b0b937fdafac">tolower</a> (std::string string)</td></tr>
<tr class="memdesc:a5b67cbf475b1e1d3bec9b0b937fdafac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert string to lower case.  <a href="#a5b67cbf475b1e1d3bec9b0b937fdafac">More...</a><br /></td></tr>
<tr class="separator:a5b67cbf475b1e1d3bec9b0b937fdafac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a93690f80f7fb88ea733fdc6f9f3b3ada"><td class="memTemplParams" colspan="2">template&lt;typename T , typename std::enable_if&lt; std::is_arithmetic&lt; T &gt;::value, int &gt;::type  = 0&gt; </td></tr>
<tr class="memitem:a93690f80f7fb88ea733fdc6f9f3b3ada"><td class="memTemplItemLeft" align="right" valign="top">std::string&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test.xhtml#a93690f80f7fb88ea733fdc6f9f3b3ada">arithmetic_to_string</a> (T val, int decimal_places=0)</td></tr>
<tr class="memdesc:a93690f80f7fb88ea733fdc6f9f3b3ada"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a string with the arithmetic value in full precision.  <a href="#a93690f80f7fb88ea733fdc6f9f3b3ada">More...</a><br /></td></tr>
<tr class="separator:a93690f80f7fb88ea733fdc6f9f3b3ada"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c8e6ed6deee7e5f63372d6975f0fb91"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_g_c_tensor.xhtml">GCTensor</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test.xhtml#a3c8e6ed6deee7e5f63372d6975f0fb91">create_tensor</a> (const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &amp;shape, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> data_type, int num_channels=1, int fixed_point_position=0)</td></tr>
<tr class="memdesc:a3c8e6ed6deee7e5f63372d6975f0fb91"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper to create an empty tensor.  <a href="#a3c8e6ed6deee7e5f63372d6975f0fb91">More...</a><br /></td></tr>
<tr class="separator:a3c8e6ed6deee7e5f63372d6975f0fb91"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a927fb5d3770b704997bee8c1070cdba8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_g_c_tensor.xhtml">GCTensor</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test.xhtml#a927fb5d3770b704997bee8c1070cdba8">create_tensor</a> (const std::string &amp;name, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> data_type)</td></tr>
<tr class="memdesc:a927fb5d3770b704997bee8c1070cdba8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper to create an empty tensor.  <a href="#a927fb5d3770b704997bee8c1070cdba8">More...</a><br /></td></tr>
<tr class="separator:a927fb5d3770b704997bee8c1070cdba8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab7a4db66b02e6e176def3cab5ace07d9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test.xhtml#ab7a4db66b02e6e176def3cab5ace07d9">print_tensor</a> (<a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a> &amp;tensor, const std::string &amp;name, <a class="el" href="structarm__compute_1_1_i_o_format_info.xhtml">IOFormatInfo</a> info=<a class="el" href="structarm__compute_1_1_i_o_format_info.xhtml">IOFormatInfo</a>(<a class="el" href="structarm__compute_1_1_i_o_format_info.xhtml#ae283722f31a4c59039f9abd44f10dbd0abbd47109890259c0127154db1af26c75">IOFormatInfo::PrintRegion::Full</a>))</td></tr>
<tr class="memdesc:ab7a4db66b02e6e176def3cab5ace07d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper to print tensor.  <a href="#ab7a4db66b02e6e176def3cab5ace07d9">More...</a><br /></td></tr>
<tr class="separator:ab7a4db66b02e6e176def3cab5ace07d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8939810976531494e8db1f491bf61a35"><td class="memTemplParams" colspan="2">template&lt;typename D , typename T , typename... Ts&gt; </td></tr>
<tr class="memitem:a8939810976531494e8db1f491bf61a35"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test.xhtml#a8939810976531494e8db1f491bf61a35">fill_tensors</a> (D &amp;&amp;dist, std::initializer_list&lt; int &gt; seeds, T &amp;&amp;tensor, Ts &amp;&amp;...other_tensors)</td></tr>
<tr class="separator:a8939810976531494e8db1f491bf61a35"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a28edc8880596d14c099f3c2509efc8b3"><td class="memTemplParams" colspan="2">template&lt;typename U &gt; </td></tr>
<tr class="memitem:a28edc8880596d14c099f3c2509efc8b3"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test.xhtml#a28edc8880596d14c099f3c2509efc8b3">swap</a> (<a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>&lt; U &gt; &amp;tensor1, <a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>&lt; U &gt; &amp;tensor2)</td></tr>
<tr class="separator:a28edc8880596d14c099f3c2509efc8b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af4bcf30f8c56f547f66d61c7c5ae01db"><td class="memTemplParams" colspan="2">template&lt;typename T , typename  = typename std::enable_if&lt;std::is_floating_point&lt;T&gt;::value&gt;::type&gt; </td></tr>
<tr class="memitem:af4bcf30f8c56f547f66d61c7c5ae01db"><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test.xhtml#af4bcf30f8c56f547f66d61c7c5ae01db">round_half_up</a> (T value)</td></tr>
<tr class="memdesc:af4bcf30f8c56f547f66d61c7c5ae01db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Round floating-point value with half value rounding to positive infinity.  <a href="#af4bcf30f8c56f547f66d61c7c5ae01db">More...</a><br /></td></tr>
<tr class="separator:af4bcf30f8c56f547f66d61c7c5ae01db"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad93bb148a873f19ad7692756e59617f4"><td class="memTemplParams" colspan="2">template&lt;typename T , typename  = typename std::enable_if&lt;std::is_floating_point&lt;T&gt;::value&gt;::type&gt; </td></tr>
<tr class="memitem:ad93bb148a873f19ad7692756e59617f4"><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test.xhtml#ad93bb148a873f19ad7692756e59617f4">round_half_even</a> (T value, T epsilon=std::numeric_limits&lt; T &gt;::epsilon())</td></tr>
<tr class="memdesc:ad93bb148a873f19ad7692756e59617f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Round floating-point value with half value rounding to nearest even.  <a href="#ad93bb148a873f19ad7692756e59617f4">More...</a><br /></td></tr>
<tr class="separator:ad93bb148a873f19ad7692756e59617f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa337ab76176f3c4193642ac6de3a61cf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58">Format</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test.xhtml#aa337ab76176f3c4193642ac6de3a61cf">get_format_for_channel</a> (<a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455a">Channel</a> channel)</td></tr>
<tr class="memdesc:aa337ab76176f3c4193642ac6de3a61cf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Look up the format corresponding to a channel.  <a href="#aa337ab76176f3c4193642ac6de3a61cf">More...</a><br /></td></tr>
<tr class="separator:aa337ab76176f3c4193642ac6de3a61cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac7dbe33793790fc37a5eda11ed6b0273"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58">Format</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test.xhtml#ac7dbe33793790fc37a5eda11ed6b0273">get_channel_format</a> (<a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455a">Channel</a> channel)</td></tr>
<tr class="memdesc:ac7dbe33793790fc37a5eda11ed6b0273"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the format of a channel.  <a href="#ac7dbe33793790fc37a5eda11ed6b0273">More...</a><br /></td></tr>
<tr class="separator:ac7dbe33793790fc37a5eda11ed6b0273"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1ebbb23b0094d47c51226d58e17e6447"><td class="memTemplParams" colspan="2">template&lt;typename F , typename T &gt; </td></tr>
<tr class="memitem:a1ebbb23b0094d47c51226d58e17e6447"><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test.xhtml#a1ebbb23b0094d47c51226d58e17e6447">foldl</a> (F &amp;&amp;, const T &amp;value)</td></tr>
<tr class="memdesc:a1ebbb23b0094d47c51226d58e17e6447"><td class="mdescLeft">&#160;</td><td class="mdescRight">Base case of foldl.  <a href="#a1ebbb23b0094d47c51226d58e17e6447">More...</a><br /></td></tr>
<tr class="separator:a1ebbb23b0094d47c51226d58e17e6447"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad933f996ccb22854ae56dd86de8cbbfe"><td class="memTemplParams" colspan="2">template&lt;typename F , typename T , typename U &gt; </td></tr>
<tr class="memitem:ad933f996ccb22854ae56dd86de8cbbfe"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test.xhtml#ad933f996ccb22854ae56dd86de8cbbfe">foldl</a> (F &amp;&amp;func, T &amp;&amp;value1, U &amp;&amp;value2) -&gt; decltype(func(value1, value2))</td></tr>
<tr class="memdesc:ad933f996ccb22854ae56dd86de8cbbfe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Base case of foldl.  <a href="#ad933f996ccb22854ae56dd86de8cbbfe">More...</a><br /></td></tr>
<tr class="separator:ad933f996ccb22854ae56dd86de8cbbfe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a89322cccde5e0a27d3a41085d3fd366c"><td class="memTemplParams" colspan="2">template&lt;typename F , typename I , typename T , typename... Vs&gt; </td></tr>
<tr class="memitem:a89322cccde5e0a27d3a41085d3fd366c"><td class="memTemplItemLeft" align="right" valign="top">I&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test.xhtml#a89322cccde5e0a27d3a41085d3fd366c">foldl</a> (F &amp;&amp;func, I &amp;&amp;initial, T &amp;&amp;value, Vs &amp;&amp;...values)</td></tr>
<tr class="memdesc:a89322cccde5e0a27d3a41085d3fd366c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fold left.  <a href="#a89322cccde5e0a27d3a41085d3fd366c">More...</a><br /></td></tr>
<tr class="separator:a89322cccde5e0a27d3a41085d3fd366c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8103df0e6c416f55f40106aa49072b42"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structarm__compute_1_1_valid_region.xhtml">ValidRegion</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test.xhtml#a8103df0e6c416f55f40106aa49072b42">shape_to_valid_region</a> (const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &amp;a_shape, bool border_undefined=false, <a class="el" href="structarm__compute_1_1_border_size.xhtml">BorderSize</a> border_size=<a class="el" href="structarm__compute_1_1_border_size.xhtml">BorderSize</a>(0))</td></tr>
<tr class="memdesc:a8103df0e6c416f55f40106aa49072b42"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a valid region based on tensor shape, border mode and border size.  <a href="#a8103df0e6c416f55f40106aa49072b42">More...</a><br /></td></tr>
<tr class="separator:a8103df0e6c416f55f40106aa49072b42"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1177ef8061a8b46b5d79c1af93c12de1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structarm__compute_1_1_valid_region.xhtml">ValidRegion</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test.xhtml#a1177ef8061a8b46b5d79c1af93c12de1">shape_to_valid_region_gaussian_pyramid_half</a> (const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &amp;a_shape, const <a class="el" href="structarm__compute_1_1_valid_region.xhtml">ValidRegion</a> &amp;a_valid_region, bool border_undefined=false)</td></tr>
<tr class="memdesc:a1177ef8061a8b46b5d79c1af93c12de1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a valid region for Gaussian <a class="el" href="classarm__compute_1_1_pyramid.xhtml" title="Basic implementation of the pyramid interface. ">Pyramid</a> Half based on tensor shape and valid region at level "i - 1" and border mode.  <a href="#a1177ef8061a8b46b5d79c1af93c12de1">More...</a><br /></td></tr>
<tr class="separator:a1177ef8061a8b46b5d79c1af93c12de1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1e6934e95738573214c2ce1d6648d116"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a1e6934e95738573214c2ce1d6648d116"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test.xhtml#a1e6934e95738573214c2ce1d6648d116">store_value_with_data_type</a> (void *ptr, T value, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> data_type)</td></tr>
<tr class="memdesc:a1e6934e95738573214c2ce1d6648d116"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write the value after casting the pointer according to <code>data_type</code>.  <a href="#a1e6934e95738573214c2ce1d6648d116">More...</a><br /></td></tr>
<tr class="separator:a1e6934e95738573214c2ce1d6648d116"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4965b2f6821e0cf0afee738158bd8377"><td class="memTemplParams" colspan="2">template&lt;typename U , typename T &gt; </td></tr>
<tr class="memitem:a4965b2f6821e0cf0afee738158bd8377"><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test.xhtml#a4965b2f6821e0cf0afee738158bd8377">saturate_cast</a> (T val)</td></tr>
<tr class="memdesc:a4965b2f6821e0cf0afee738158bd8377"><td class="mdescLeft">&#160;</td><td class="mdescRight">Saturate a value of type T against the numeric limits of type U.  <a href="#a4965b2f6821e0cf0afee738158bd8377">More...</a><br /></td></tr>
<tr class="separator:a4965b2f6821e0cf0afee738158bd8377"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a24d8c0391cfa38e78969b6ad97c0ff09"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_coordinates.xhtml">Coordinates</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test.xhtml#a24d8c0391cfa38e78969b6ad97c0ff09">index2coord</a> (const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &amp;shape, int index)</td></tr>
<tr class="memdesc:a24d8c0391cfa38e78969b6ad97c0ff09"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a linear index into n-dimensional coordinates.  <a href="#a24d8c0391cfa38e78969b6ad97c0ff09">More...</a><br /></td></tr>
<tr class="separator:a24d8c0391cfa38e78969b6ad97c0ff09"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9be4cb7e6ee20063a4a10bc3abb750b9"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test.xhtml#a9be4cb7e6ee20063a4a10bc3abb750b9">coord2index</a> (const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &amp;shape, const <a class="el" href="classarm__compute_1_1_coordinates.xhtml">Coordinates</a> &amp;coord)</td></tr>
<tr class="memdesc:a9be4cb7e6ee20063a4a10bc3abb750b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Linearise the given coordinate.  <a href="#a9be4cb7e6ee20063a4a10bc3abb750b9">More...</a><br /></td></tr>
<tr class="separator:a9be4cb7e6ee20063a4a10bc3abb750b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a856b55fc20ddcbdbeb84c35ae27bedac"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test.xhtml#a856b55fc20ddcbdbeb84c35ae27bedac">is_in_valid_region</a> (const <a class="el" href="structarm__compute_1_1_valid_region.xhtml">ValidRegion</a> &amp;valid_region, <a class="el" href="classarm__compute_1_1_coordinates.xhtml">Coordinates</a> coord)</td></tr>
<tr class="memdesc:a856b55fc20ddcbdbeb84c35ae27bedac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if a coordinate is within a valid region.  <a href="#a856b55fc20ddcbdbeb84c35ae27bedac">More...</a><br /></td></tr>
<tr class="separator:a856b55fc20ddcbdbeb84c35ae27bedac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a53c8a8429d0e6fd79a8acbd4aa4581fd"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a53c8a8429d0e6fd79a8acbd4aa4581fd"><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test.xhtml#a53c8a8429d0e6fd79a8acbd4aa4581fd">create_tensor</a> (const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &amp;shape, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> data_type, int num_channels=1, int fixed_point_position=0, <a class="el" href="structarm__compute_1_1_quantization_info.xhtml">QuantizationInfo</a> quantization_info=<a class="el" href="structarm__compute_1_1_quantization_info.xhtml">QuantizationInfo</a>(), <a class="el" href="namespacearm__compute.xhtml#ad1d5cce2d9e9a5d61c243e5c989112e0">DataLayout</a> data_layout=<a class="el" href="namespacearm__compute.xhtml#ad1d5cce2d9e9a5d61c243e5c989112e0a6b99f356fe3b30a2a850b5ea897c289f">DataLayout::NCHW</a>)</td></tr>
<tr class="memdesc:a53c8a8429d0e6fd79a8acbd4aa4581fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create and initialize a tensor of the given type.  <a href="#a53c8a8429d0e6fd79a8acbd4aa4581fd">More...</a><br /></td></tr>
<tr class="separator:a53c8a8429d0e6fd79a8acbd4aa4581fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1a1319867418814820134ec77cf09eed"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a1a1319867418814820134ec77cf09eed"><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test.xhtml#a1a1319867418814820134ec77cf09eed">create_tensor</a> (const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &amp;shape, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58">Format</a> format)</td></tr>
<tr class="memdesc:a1a1319867418814820134ec77cf09eed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create and initialize a tensor of the given type.  <a href="#a1a1319867418814820134ec77cf09eed">More...</a><br /></td></tr>
<tr class="separator:a1a1319867418814820134ec77cf09eed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a764bac61748afaf8fd0468b2a4cb09be"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a764bac61748afaf8fd0468b2a4cb09be"><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test.xhtml#a764bac61748afaf8fd0468b2a4cb09be">create_multi_image</a> (const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &amp;shape, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58">Format</a> format)</td></tr>
<tr class="memdesc:a764bac61748afaf8fd0468b2a4cb09be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create and initialize a multi-image of the given type.  <a href="#a764bac61748afaf8fd0468b2a4cb09be">More...</a><br /></td></tr>
<tr class="separator:a764bac61748afaf8fd0468b2a4cb09be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2e6c79aeedb1c5c9482568562e310fba"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a2e6c79aeedb1c5c9482568562e310fba"><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test.xhtml#a2e6c79aeedb1c5c9482568562e310fba">create_HOG</a> (const <a class="el" href="classarm__compute_1_1_h_o_g_info.xhtml">HOGInfo</a> &amp;hog_info)</td></tr>
<tr class="memdesc:a2e6c79aeedb1c5c9482568562e310fba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create and initialize a <a class="el" href="classarm__compute_1_1_h_o_g.xhtml" title="CPU implementation of HOG data-object. ">HOG</a> (Histogram of Oriented Gradients) of the given type.  <a href="#a2e6c79aeedb1c5c9482568562e310fba">More...</a><br /></td></tr>
<tr class="separator:a2e6c79aeedb1c5c9482568562e310fba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0c2176d85e729a5a5361181fd8119320"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a0c2176d85e729a5a5361181fd8119320"><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test.xhtml#a0c2176d85e729a5a5361181fd8119320">create_pyramid</a> (const <a class="el" href="classarm__compute_1_1_pyramid_info.xhtml">PyramidInfo</a> &amp;pyramid_info)</td></tr>
<tr class="memdesc:a0c2176d85e729a5a5361181fd8119320"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create and initialize a <a class="el" href="classarm__compute_1_1_pyramid.xhtml" title="Basic implementation of the pyramid interface. ">Pyramid</a> of the given type.  <a href="#a0c2176d85e729a5a5361181fd8119320">More...</a><br /></td></tr>
<tr class="separator:a0c2176d85e729a5a5361181fd8119320"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac7324cc960068b65c558b7d25dfe2914"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="structarm__compute_1_1_r_o_i.xhtml">ROI</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test.xhtml#ac7324cc960068b65c558b7d25dfe2914">generate_random_rois</a> (const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &amp;shape, const <a class="el" href="classarm__compute_1_1_r_o_i_pooling_layer_info.xhtml">ROIPoolingLayerInfo</a> &amp;pool_info, unsigned int num_rois, std::random_device::result_type seed)</td></tr>
<tr class="memdesc:ac7324cc960068b65c558b7d25dfe2914"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a vector of random ROIs.  <a href="#ac7324cc960068b65c558b7d25dfe2914">More...</a><br /></td></tr>
<tr class="separator:ac7324cc960068b65c558b7d25dfe2914"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a000a9b9acb976222ee72275cf8852a3f"><td class="memTemplParams" colspan="2">template&lt;typename T , typename  = typename std::enable_if&lt;std::is_floating_point&lt;T&gt;::value&gt;::type&gt; </td></tr>
<tr class="memitem:a000a9b9acb976222ee72275cf8852a3f"><td class="memTemplItemLeft" align="right" valign="top">std::vector&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test.xhtml#a000a9b9acb976222ee72275cf8852a3f">generate_random_real</a> (unsigned int num_values, T min, T max, std::random_device::result_type seed)</td></tr>
<tr class="memdesc:a000a9b9acb976222ee72275cf8852a3f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a vector with a uniform distribution of floating point values across the specified range.  <a href="#a000a9b9acb976222ee72275cf8852a3f">More...</a><br /></td></tr>
<tr class="separator:a000a9b9acb976222ee72275cf8852a3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6fca44ec6b8d63994a8b16012a73f666"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="structarm__compute_1_1_key_point.xhtml">KeyPoint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test.xhtml#a6fca44ec6b8d63994a8b16012a73f666">generate_random_keypoints</a> (const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &amp;shape, size_t num_keypoints, std::random_device::result_type seed, size_t num_levels=1)</td></tr>
<tr class="memdesc:a6fca44ec6b8d63994a8b16012a73f666"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a vector of random keypoints for pyramid representation.  <a href="#a6fca44ec6b8d63994a8b16012a73f666">More...</a><br /></td></tr>
<tr class="separator:a6fca44ec6b8d63994a8b16012a73f666"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac35e7a1ad467f5fe8620cbbc5793d53b"><td class="memTemplParams" colspan="2">template&lt;typename T , typename ArrayAccessor_T &gt; </td></tr>
<tr class="memitem:ac35e7a1ad467f5fe8620cbbc5793d53b"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test.xhtml#ac35e7a1ad467f5fe8620cbbc5793d53b">fill_array</a> (ArrayAccessor_T &amp;&amp;array, const std::vector&lt; T &gt; &amp;v)</td></tr>
<tr class="separator:ac35e7a1ad467f5fe8620cbbc5793d53b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae47155d6186155ec4da9295764b3c05a"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test.xhtml#ae47155d6186155ec4da9295764b3c05a">get_typestring</a> (<a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a> data_type)</td></tr>
<tr class="memdesc:ae47155d6186155ec4da9295764b3c05a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Obtain numpy type string from DataType.  <a href="#ae47155d6186155ec4da9295764b3c05a">More...</a><br /></td></tr>
<tr class="separator:ae47155d6186155ec4da9295764b3c05a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5967bb62a612be6b300aa96049a2166a"><td class="memTemplParams" colspan="2">template&lt;typename TensorType &gt; </td></tr>
<tr class="memitem:a5967bb62a612be6b300aa96049a2166a"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test.xhtml#a5967bb62a612be6b300aa96049a2166a">sync_if_necessary</a> ()</td></tr>
<tr class="memdesc:a5967bb62a612be6b300aa96049a2166a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sync if necessary.  <a href="#a5967bb62a612be6b300aa96049a2166a">More...</a><br /></td></tr>
<tr class="separator:a5967bb62a612be6b300aa96049a2166a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a619736e19838c20cac8f668ab13aae37"><td class="memTemplParams" colspan="2">template&lt;typename TensorType &gt; </td></tr>
<tr class="memitem:a619736e19838c20cac8f668ab13aae37"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test.xhtml#a619736e19838c20cac8f668ab13aae37">sync_tensor_if_necessary</a> (TensorType &amp;tensor)</td></tr>
<tr class="memdesc:a619736e19838c20cac8f668ab13aae37"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sync tensor if necessary.  <a href="#a619736e19838c20cac8f668ab13aae37">More...</a><br /></td></tr>
<tr class="separator:a619736e19838c20cac8f668ab13aae37"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:a71326f0909d77386e29b511e1990a11f"><td class="memItemLeft" align="right" valign="top">std::unique_ptr&lt; <a class="el" href="classarm__compute_1_1test_1_1_assets_library.xhtml">AssetsLibrary</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearm__compute_1_1test.xhtml#a71326f0909d77386e29b511e1990a11f">library</a></td></tr>
<tr class="separator:a71326f0909d77386e29b511e1990a11f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="ab3a61953b0f41e932f8a2ce8918e7aec"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void arm_compute::test::apply </td>
          <td>(</td>
          <td class="paramtype">O *&#160;</td>
          <td class="paramname"><em>obj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">F &amp;&amp;&#160;</td>
          <td class="paramname"><em>func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::tuple&lt; As... &gt; &amp;&#160;</td>
          <td class="paramname"><em>args</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="tests_2framework_2_utils_8h_source.xhtml#l00079">79</a> of file <a class="el" href="tests_2framework_2_utils_8h_source.xhtml">Utils.h</a>.</p>

<p>References <a class="el" href="tests_2framework_2_utils_8h_source.xhtml#l00072">arm_compute::test::framework::apply_impl()</a>.</p>
<div class="fragment"><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;{</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;    <a class="code" href="namespacearm__compute_1_1test_1_1framework.xhtml#a1ce487275e4d9e2072af217789dcdcc5">detail::apply_impl</a>(obj, std::forward&lt;F&gt;(func), args, detail::sequence_t&lt;<span class="keyword">sizeof</span>...(As)&gt;());</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1framework_xhtml_a1ce487275e4d9e2072af217789dcdcc5"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1framework.xhtml#a1ce487275e4d9e2072af217789dcdcc5">arm_compute::test::framework::apply_impl</a></div><div class="ttdeci">void apply_impl(O *obj, F &amp;&amp;func, const std::tuple&lt; As... &gt; &amp;args, detail::sequence&lt; S... &gt;)</div><div class="ttdef"><b>Definition:</b> <a href="tests_2framework_2_utils_8h_source.xhtml#l00072">Utils.h:72</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="a93690f80f7fb88ea733fdc6f9f3b3ada"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::string arm_compute::test::arithmetic_to_string </td>
          <td>(</td>
          <td class="paramtype">T&#160;</td>
          <td class="paramname"><em>val</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>decimal_places</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Create a string with the arithmetic value in full precision. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">val</td><td>Arithmetic value </td></tr>
    <tr><td class="paramname">decimal_places</td><td>How many decimal places to show</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>String with the arithmetic value. </dd></dl>

<p>Definition at line <a class="el" href="tests_2framework_2_utils_8h_source.xhtml#l00164">164</a> of file <a class="el" href="tests_2framework_2_utils_8h_source.xhtml">Utils.h</a>.</p>

<p>Referenced by <a class="el" href="_pretty_printer_8cpp_source.xhtml#l00119">PrettyPrinter::print_measurements()</a>.</p>
<div class="fragment"><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;{</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;    std::stringstream ss;</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;    ss &lt;&lt; std::fixed;</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;    ss.precision((decimal_places) ? decimal_places : std::numeric_limits&lt;T&gt;::digits10 + 1);</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;    ss &lt;&lt; val;</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;    <span class="keywordflow">return</span> ss.str();</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;}</div></div><!-- fragment -->
</div>
</div>
<a class="anchor" id="a9be4cb7e6ee20063a4a10bc3abb750b9"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int arm_compute::test::coord2index </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &amp;&#160;</td>
          <td class="paramname"><em>shape</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classarm__compute_1_1_coordinates.xhtml">Coordinates</a> &amp;&#160;</td>
          <td class="paramname"><em>coord</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Linearise the given coordinate. </p>
<p>Transforms the given coordinate into a linear offset in terms of elements.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">shape</td><td>Shape of the n-dimensional tensor. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">coord</td><td>The to be converted coordinate.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Linear offset to the element. </dd></dl>

<p>Definition at line <a class="el" href="tests_2_utils_8h_source.xhtml#l00448">448</a> of file <a class="el" href="tests_2_utils_8h_source.xhtml">Utils.h</a>.</p>

<p>References <a class="el" href="_error_8h_source.xhtml#l00319">ARM_COMPUTE_ERROR_ON_MSG</a>, <a class="el" href="_dimensions_8h_source.xhtml#l00122">Dimensions&lt; T &gt;::num_dimensions()</a>, and <a class="el" href="_tensor_shape_8h_source.xhtml#l00157">TensorShape::total_size()</a>.</p>

<p>Referenced by <a class="el" href="tests_2validation_2reference_2_utils_8h_source.xhtml#l00098">arm_compute::test::validation::apply_2d_spatial_filter()</a>, <a class="el" href="tests_2validation_2_u_n_i_t_2_utils_8cpp_source.xhtml#l00077">DATA_TEST_CASE()</a>, <a class="el" href="reference_2_fast_corners_8cpp_source.xhtml#l00152">arm_compute::test::validation::reference::fast_corners()</a>, <a class="el" href="_raw_tensor_8cpp_source.xhtml#l00057">RawTensor::operator()()</a>, <a class="el" href="_simple_tensor_8h_source.xhtml#l00410">SimpleTensor&lt; T &gt;::operator()()</a>, <a class="el" href="reference_2_permute_8cpp_source.xhtml#l00038">arm_compute::test::validation::reference::permute()</a>, <a class="el" href="validation_2reference_2_scale_8cpp_source.xhtml#l00040">arm_compute::test::validation::reference::scale()</a>, <a class="el" href="tests_2validation_2reference_2_utils_8h_source.xhtml#l00061">arm_compute::test::validation::tensor_elem_at()</a>, <a class="el" href="validation_2reference_2_transpose_8cpp_source.xhtml#l00039">arm_compute::test::validation::reference::transpose()</a>, <a class="el" href="reference_2_warp_affine_8cpp_source.xhtml#l00050">arm_compute::test::validation::reference::warp_affine()</a>, and <a class="el" href="reference_2_warp_perspective_8cpp_source.xhtml#l00038">arm_compute::test::validation::reference::warp_perspective()</a>.</p>
<div class="fragment"><div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;{</div><div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;    <a class="code" href="_error_8h.xhtml#a5bbdcf574d3f5e412fa6a1117911e67b">ARM_COMPUTE_ERROR_ON_MSG</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a45cde9abb508c62d67c3bb2b9bf566a5">shape</a>.total_size() == 0, <span class="stringliteral">&quot;Cannot get index from empty shape&quot;</span>);</div><div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160;    <a class="code" href="_error_8h.xhtml#a5bbdcf574d3f5e412fa6a1117911e67b">ARM_COMPUTE_ERROR_ON_MSG</a>(coord.num_dimensions() == 0, <span class="stringliteral">&quot;Cannot get index of empty coordinate&quot;</span>);</div><div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160;</div><div class="line"><a name="l00453"></a><span class="lineno">  453</span>&#160;    <span class="keywordtype">int</span> index    = 0;</div><div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;    <span class="keywordtype">int</span> dim_size = 1;</div><div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;</div><div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;    <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; coord.num_dimensions(); ++i)</div><div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;    {</div><div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;        index += coord[i] * dim_size;</div><div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;        dim_size *= <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a45cde9abb508c62d67c3bb2b9bf566a5">shape</a>[i];</div><div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;    }</div><div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;</div><div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;    <span class="keywordflow">return</span> index;</div><div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a45cde9abb508c62d67c3bb2b9bf566a5"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a45cde9abb508c62d67c3bb2b9bf566a5">arm_compute::test::validation::shape</a></div><div class="ttdeci">shape</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_convolution_8cpp_source.xhtml#l00133">Convolution.cpp:133</a></div></div>
<div class="ttc" id="_error_8h_xhtml_a5bbdcf574d3f5e412fa6a1117911e67b"><div class="ttname"><a href="_error_8h.xhtml#a5bbdcf574d3f5e412fa6a1117911e67b">ARM_COMPUTE_ERROR_ON_MSG</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_ON_MSG(cond,...)</div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00319">Error.h:319</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="a2e6c79aeedb1c5c9482568562e310fba"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">T arm_compute::test::create_HOG </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classarm__compute_1_1_h_o_g_info.xhtml">HOGInfo</a> &amp;&#160;</td>
          <td class="paramname"><em>hog_info</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Create and initialize a <a class="el" href="classarm__compute_1_1_h_o_g.xhtml" title="CPU implementation of HOG data-object. ">HOG</a> (Histogram of Oriented Gradients) of the given type. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">hog_info</td><td><a class="el" href="classarm__compute_1_1_h_o_g_info.xhtml" title="Store the HOG&#39;s metadata. ">HOGInfo</a> object</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Initialized <a class="el" href="classarm__compute_1_1_h_o_g.xhtml" title="CPU implementation of HOG data-object. ">HOG</a> of given type. </dd></dl>

<p>Definition at line <a class="el" href="tests_2_utils_8h_source.xhtml#l00544">544</a> of file <a class="el" href="tests_2_utils_8h_source.xhtml">Utils.h</a>.</p>
<div class="fragment"><div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160;{</div><div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;    T hog;</div><div class="line"><a name="l00547"></a><span class="lineno">  547</span>&#160;    hog.init(hog_info);</div><div class="line"><a name="l00548"></a><span class="lineno">  548</span>&#160;</div><div class="line"><a name="l00549"></a><span class="lineno">  549</span>&#160;    <span class="keywordflow">return</span> hog;</div><div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160;}</div></div><!-- fragment -->
</div>
</div>
<a class="anchor" id="a764bac61748afaf8fd0468b2a4cb09be"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">T arm_compute::test::create_multi_image </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &amp;&#160;</td>
          <td class="paramname"><em>shape</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58">Format</a>&#160;</td>
          <td class="paramname"><em>format</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Create and initialize a multi-image of the given type. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">shape</td><td><a class="el" href="classarm__compute_1_1_tensor.xhtml" title="Basic implementation of the tensor interface. ">Tensor</a> shape. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">format</td><td>Format type.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Initialized tensor of given type. </dd></dl>

<p>Definition at line <a class="el" href="tests_2_utils_8h_source.xhtml#l00529">529</a> of file <a class="el" href="tests_2_utils_8h_source.xhtml">Utils.h</a>.</p>

<p>References <a class="el" href="_dimensions_8h_source.xhtml#l00081">Dimensions&lt; T &gt;::x()</a>, and <a class="el" href="_dimensions_8h_source.xhtml#l00086">Dimensions&lt; T &gt;::y()</a>.</p>
<div class="fragment"><div class="line"><a name="l00530"></a><span class="lineno">  530</span>&#160;{</div><div class="line"><a name="l00531"></a><span class="lineno">  531</span>&#160;    T multi_image;</div><div class="line"><a name="l00532"></a><span class="lineno">  532</span>&#160;    multi_image.init(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a45cde9abb508c62d67c3bb2b9bf566a5">shape</a>.x(), <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a45cde9abb508c62d67c3bb2b9bf566a5">shape</a>.y(), format);</div><div class="line"><a name="l00533"></a><span class="lineno">  533</span>&#160;</div><div class="line"><a name="l00534"></a><span class="lineno">  534</span>&#160;    <span class="keywordflow">return</span> multi_image;</div><div class="line"><a name="l00535"></a><span class="lineno">  535</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a45cde9abb508c62d67c3bb2b9bf566a5"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a45cde9abb508c62d67c3bb2b9bf566a5">arm_compute::test::validation::shape</a></div><div class="ttdeci">shape</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_convolution_8cpp_source.xhtml#l00133">Convolution.cpp:133</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="a0c2176d85e729a5a5361181fd8119320"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">T arm_compute::test::create_pyramid </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classarm__compute_1_1_pyramid_info.xhtml">PyramidInfo</a> &amp;&#160;</td>
          <td class="paramname"><em>pyramid_info</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Create and initialize a <a class="el" href="classarm__compute_1_1_pyramid.xhtml" title="Basic implementation of the pyramid interface. ">Pyramid</a> of the given type. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">pyramid_info</td><td>The <a class="el" href="classarm__compute_1_1_pyramid_info.xhtml" title="Store the Pyramid&#39;s metadata. ">PyramidInfo</a> object.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Initialized <a class="el" href="classarm__compute_1_1_pyramid.xhtml" title="Basic implementation of the pyramid interface. ">Pyramid</a> of given type. </dd></dl>

<p>Definition at line <a class="el" href="tests_2_utils_8h_source.xhtml#l00559">559</a> of file <a class="el" href="tests_2_utils_8h_source.xhtml">Utils.h</a>.</p>
<div class="fragment"><div class="line"><a name="l00560"></a><span class="lineno">  560</span>&#160;{</div><div class="line"><a name="l00561"></a><span class="lineno">  561</span>&#160;    T pyramid;</div><div class="line"><a name="l00562"></a><span class="lineno">  562</span>&#160;    pyramid.init_auto_padding(pyramid_info);</div><div class="line"><a name="l00563"></a><span class="lineno">  563</span>&#160;</div><div class="line"><a name="l00564"></a><span class="lineno">  564</span>&#160;    <span class="keywordflow">return</span> pyramid;</div><div class="line"><a name="l00565"></a><span class="lineno">  565</span>&#160;}</div></div><!-- fragment -->
</div>
</div>
<a class="anchor" id="a3c8e6ed6deee7e5f63372d6975f0fb91"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classarm__compute_1_1_g_c_tensor.xhtml">GCTensor</a> arm_compute::test::create_tensor </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &amp;&#160;</td>
          <td class="paramname"><em>shape</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a>&#160;</td>
          <td class="paramname"><em>data_type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>num_channels</em> = <code>1</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>fixed_point_position</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Helper to create an empty tensor. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">shape</td><td>Desired shape. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">data_type</td><td>Desired data type. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">num_channels</td><td>(Optional) It indicates the number of channels for each tensor element </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>(Optional) Fixed point position that expresses the number of bits for the fractional part of the number when the tensor's data type is QS8 or QS16.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Empty <a class="el" href="classarm__compute_1_1_g_c_tensor.xhtml">GCTensor</a> with the specified shape and data type. </dd></dl>

<p>Definition at line <a class="el" href="_g_l_e_s___c_o_m_p_u_t_e_2_helper_8h_source.xhtml#l00047">47</a> of file <a class="el" href="_g_l_e_s___c_o_m_p_u_t_e_2_helper_8h_source.xhtml">Helper.h</a>.</p>

<p>References <a class="el" href="classarm__compute_1_1_g_c_tensor.xhtml#ad6dc6b773780dd6b1ad17fc82368d9f3">GCTensor::allocator()</a>, and <a class="el" href="classarm__compute_1_1_i_tensor_allocator.xhtml#aa72161e0e3c0f6b2da20f835de6af680">ITensorAllocator::init()</a>.</p>
<div class="fragment"><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;{</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;    GCTensor tensor;</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;    tensor.allocator()-&gt;init(TensorInfo(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a45cde9abb508c62d67c3bb2b9bf566a5">shape</a>, num_channels, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ac2ad7f431e3446fddcd9b6b9f93c4c14">data_type</a>, fixed_point_position));</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;    <span class="keywordflow">return</span> tensor;</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a45cde9abb508c62d67c3bb2b9bf566a5"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a45cde9abb508c62d67c3bb2b9bf566a5">arm_compute::test::validation::shape</a></div><div class="ttdeci">shape</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_convolution_8cpp_source.xhtml#l00133">Convolution.cpp:133</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_ac2ad7f431e3446fddcd9b6b9f93c4c14"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#ac2ad7f431e3446fddcd9b6b9f93c4c14">arm_compute::test::validation::data_type</a></div><div class="ttdeci">data_type</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00116">GEMM.cpp:116</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="a927fb5d3770b704997bee8c1070cdba8"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classarm__compute_1_1_g_c_tensor.xhtml">GCTensor</a> arm_compute::test::create_tensor </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a>&#160;</td>
          <td class="paramname"><em>data_type</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Helper to create an empty tensor. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>File name from which to get the dimensions. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">data_type</td><td>Desired data type.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Empty <a class="el" href="classarm__compute_1_1_g_c_tensor.xhtml">GCTensor</a> with the specified shape and data type. </dd></dl>

<p>Definition at line <a class="el" href="_g_l_e_s___c_o_m_p_u_t_e_2_helper_8h_source.xhtml#l00062">62</a> of file <a class="el" href="_g_l_e_s___c_o_m_p_u_t_e_2_helper_8h_source.xhtml">Helper.h</a>.</p>

<p>References <a class="el" href="classarm__compute_1_1_g_c_tensor.xhtml#ad6dc6b773780dd6b1ad17fc82368d9f3">GCTensor::allocator()</a>, <a class="el" href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00116">arm_compute::test::validation::data_type</a>, <a class="el" href="classarm__compute_1_1_i_tensor_allocator.xhtml#aa72161e0e3c0f6b2da20f835de6af680">ITensorAllocator::init()</a>, <a class="el" href="main_8cpp_source.xhtml#l00059">library</a>, and <a class="el" href="_simple_tensor_8h_source.xhtml#l00294">SimpleTensor&lt; T &gt;::shape()</a>.</p>
<div class="fragment"><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;{</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    constexpr <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> num_channels = 1;</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;    <span class="keyword">const</span> RawTensor &amp;raw = <a class="code" href="namespacearm__compute_1_1test.xhtml#a71326f0909d77386e29b511e1990a11f">library</a>-&gt;get(name);</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;    GCTensor tensor;</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    tensor.allocator()-&gt;init(TensorInfo(raw.shape(), num_channels, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ac2ad7f431e3446fddcd9b6b9f93c4c14">data_type</a>));</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    <span class="keywordflow">return</span> tensor;</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_ac2ad7f431e3446fddcd9b6b9f93c4c14"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#ac2ad7f431e3446fddcd9b6b9f93c4c14">arm_compute::test::validation::data_type</a></div><div class="ttdeci">data_type</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00116">GEMM.cpp:116</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1test_xhtml_a71326f0909d77386e29b511e1990a11f"><div class="ttname"><a href="namespacearm__compute_1_1test.xhtml#a71326f0909d77386e29b511e1990a11f">arm_compute::test::library</a></div><div class="ttdeci">std::unique_ptr&lt; AssetsLibrary &gt; library</div><div class="ttdef"><b>Definition:</b> <a href="main_8cpp_source.xhtml#l00059">main.cpp:59</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="a53c8a8429d0e6fd79a8acbd4aa4581fd"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">T arm_compute::test::create_tensor </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &amp;&#160;</td>
          <td class="paramname"><em>shape</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a>&#160;</td>
          <td class="paramname"><em>data_type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>num_channels</em> = <code>1</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>fixed_point_position</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structarm__compute_1_1_quantization_info.xhtml">QuantizationInfo</a>&#160;</td>
          <td class="paramname"><em>quantization_info</em> = <code><a class="el" href="structarm__compute_1_1_quantization_info.xhtml">QuantizationInfo</a>()</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#ad1d5cce2d9e9a5d61c243e5c989112e0">DataLayout</a>&#160;</td>
          <td class="paramname"><em>data_layout</em> = <code><a class="el" href="namespacearm__compute.xhtml#ad1d5cce2d9e9a5d61c243e5c989112e0a6b99f356fe3b30a2a850b5ea897c289f">DataLayout::NCHW</a></code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Create and initialize a tensor of the given type. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">shape</td><td><a class="el" href="classarm__compute_1_1_tensor.xhtml" title="Basic implementation of the tensor interface. ">Tensor</a> shape. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">data_type</td><td>Data type. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">num_channels</td><td>(Optional) Number of channels. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">fixed_point_position</td><td>(Optional) Number of fractional bits. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">quantization_info</td><td>(Optional) Quantization info for asymmetric quantized types. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">data_layout</td><td>(Optional) Data layout. Default is NCHW.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Initialized tensor of given type. </dd></dl>

<p>Definition at line <a class="el" href="tests_2_utils_8h_source.xhtml#l00491">491</a> of file <a class="el" href="tests_2_utils_8h_source.xhtml">Utils.h</a>.</p>

<p>References <a class="el" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">arm_compute::test::validation::info()</a>, <a class="el" href="classarm__compute_1_1_tensor_info.xhtml#a16d275e5270f2c36a04764c863d852b6">TensorInfo::set_data_layout()</a>, and <a class="el" href="classarm__compute_1_1_tensor_info.xhtml#acda9036ad24c455f67f2fea388a0ae13">TensorInfo::set_quantization_info()</a>.</p>
<div class="fragment"><div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;{</div><div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160;    T          tensor;</div><div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160;    TensorInfo <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a45cde9abb508c62d67c3bb2b9bf566a5">shape</a>, num_channels, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ac2ad7f431e3446fddcd9b6b9f93c4c14">data_type</a>, fixed_point_position);</div><div class="line"><a name="l00496"></a><span class="lineno">  496</span>&#160;    <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.set_quantization_info(quantization_info);</div><div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160;    <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>.set_data_layout(data_layout);</div><div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160;    tensor.allocator()-&gt;init(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>);</div><div class="line"><a name="l00499"></a><span class="lineno">  499</span>&#160;</div><div class="line"><a name="l00500"></a><span class="lineno">  500</span>&#160;    <span class="keywordflow">return</span> tensor;</div><div class="line"><a name="l00501"></a><span class="lineno">  501</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a45cde9abb508c62d67c3bb2b9bf566a5"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a45cde9abb508c62d67c3bb2b9bf566a5">arm_compute::test::validation::shape</a></div><div class="ttdeci">shape</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_convolution_8cpp_source.xhtml#l00133">Convolution.cpp:133</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a096668313a9a819d54a2e65ec21ff0cc"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">arm_compute::test::validation::info</a></div><div class="ttdeci">src info() -&gt; set_format(Format::S16)</div></div>
<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_ac2ad7f431e3446fddcd9b6b9f93c4c14"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#ac2ad7f431e3446fddcd9b6b9f93c4c14">arm_compute::test::validation::data_type</a></div><div class="ttdeci">data_type</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00116">GEMM.cpp:116</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="a1a1319867418814820134ec77cf09eed"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">T arm_compute::test::create_tensor </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &amp;&#160;</td>
          <td class="paramname"><em>shape</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58">Format</a>&#160;</td>
          <td class="paramname"><em>format</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Create and initialize a tensor of the given type. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">shape</td><td><a class="el" href="classarm__compute_1_1_tensor.xhtml" title="Basic implementation of the tensor interface. ">Tensor</a> shape. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">format</td><td>Format type.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Initialized tensor of given type. </dd></dl>

<p>Definition at line <a class="el" href="tests_2_utils_8h_source.xhtml#l00511">511</a> of file <a class="el" href="tests_2_utils_8h_source.xhtml">Utils.h</a>.</p>

<p>References <a class="el" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">arm_compute::test::validation::info()</a>.</p>
<div class="fragment"><div class="line"><a name="l00512"></a><span class="lineno">  512</span>&#160;{</div><div class="line"><a name="l00513"></a><span class="lineno">  513</span>&#160;    TensorInfo <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a45cde9abb508c62d67c3bb2b9bf566a5">shape</a>, format);</div><div class="line"><a name="l00514"></a><span class="lineno">  514</span>&#160;</div><div class="line"><a name="l00515"></a><span class="lineno">  515</span>&#160;    T tensor;</div><div class="line"><a name="l00516"></a><span class="lineno">  516</span>&#160;    tensor.allocator()-&gt;init(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>);</div><div class="line"><a name="l00517"></a><span class="lineno">  517</span>&#160;</div><div class="line"><a name="l00518"></a><span class="lineno">  518</span>&#160;    <span class="keywordflow">return</span> tensor;</div><div class="line"><a name="l00519"></a><span class="lineno">  519</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a45cde9abb508c62d67c3bb2b9bf566a5"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a45cde9abb508c62d67c3bb2b9bf566a5">arm_compute::test::validation::shape</a></div><div class="ttdeci">shape</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_convolution_8cpp_source.xhtml#l00133">Convolution.cpp:133</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a096668313a9a819d54a2e65ec21ff0cc"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">arm_compute::test::validation::info</a></div><div class="ttdeci">src info() -&gt; set_format(Format::S16)</div></div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="ac35e7a1ad467f5fe8620cbbc5793d53b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void arm_compute::test::fill_array </td>
          <td>(</td>
          <td class="paramtype">ArrayAccessor_T &amp;&amp;&#160;</td>
          <td class="paramname"><em>array</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::vector&lt; T &gt; &amp;&#160;</td>
          <td class="paramname"><em>v</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="tests_2_utils_8h_source.xhtml#l00676">676</a> of file <a class="el" href="tests_2_utils_8h_source.xhtml">Utils.h</a>.</p>
<div class="fragment"><div class="line"><a name="l00677"></a><span class="lineno">  677</span>&#160;{</div><div class="line"><a name="l00678"></a><span class="lineno">  678</span>&#160;    array.resize(v.size());</div><div class="line"><a name="l00679"></a><span class="lineno">  679</span>&#160;    std::memcpy(array.buffer(), v.data(), v.size() * <span class="keyword">sizeof</span>(T));</div><div class="line"><a name="l00680"></a><span class="lineno">  680</span>&#160;}</div></div><!-- fragment -->
</div>
</div>
<a class="anchor" id="a8939810976531494e8db1f491bf61a35"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void arm_compute::test::fill_tensors </td>
          <td>(</td>
          <td class="paramtype">D &amp;&amp;&#160;</td>
          <td class="paramname"><em>dist</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::initializer_list&lt; int &gt;&#160;</td>
          <td class="paramname"><em>seeds</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">T &amp;&amp;&#160;</td>
          <td class="paramname"><em>tensor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Ts &amp;&amp;...&#160;</td>
          <td class="paramname"><em>other_tensors</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="_n_e_o_n_2_helper_8h_source.xhtml#l00041">41</a> of file <a class="el" href="_n_e_o_n_2_helper_8h_source.xhtml">Helper.h</a>.</p>

<p>References <a class="el" href="_error_8h_source.xhtml#l00328">ARM_COMPUTE_ERROR_ON</a>, and <a class="el" href="main_8cpp_source.xhtml#l00059">library</a>.</p>
<div class="fragment"><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;{</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    <span class="keyword">const</span> std::array &lt; T, 1 + <span class="keyword">sizeof</span>...(Ts) &gt; tensors{ { std::forward&lt;T&gt;(tensor), std::forward&lt;Ts&gt;(other_tensors)... } };</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;    std::vector&lt;int&gt; vs(seeds);</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;    <a class="code" href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(vs.size() != tensors.size());</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    <span class="keywordtype">int</span> k = 0;</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;    <span class="keywordflow">for</span>(<span class="keyword">auto</span> tp : tensors)</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;    {</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;        <a class="code" href="namespacearm__compute_1_1test.xhtml#a71326f0909d77386e29b511e1990a11f">library</a>-&gt;fill(Accessor(*tp), std::forward&lt;D&gt;(dist), vs[k++]);</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;    }</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;}</div><div class="ttc" id="_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_ON(cond)</div><div class="ttdoc">If the condition is true then an error message is printed and an exception thrown. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00328">Error.h:328</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1test_xhtml_a71326f0909d77386e29b511e1990a11f"><div class="ttname"><a href="namespacearm__compute_1_1test.xhtml#a71326f0909d77386e29b511e1990a11f">arm_compute::test::library</a></div><div class="ttdeci">std::unique_ptr&lt; AssetsLibrary &gt; library</div><div class="ttdef"><b>Definition:</b> <a href="main_8cpp_source.xhtml#l00059">main.cpp:59</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="a1ebbb23b0094d47c51226d58e17e6447"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">T arm_compute::test::foldl </td>
          <td>(</td>
          <td class="paramtype">F &amp;&amp;&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const T &amp;&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Base case of foldl. </p>
<dl class="section return"><dt>Returns</dt><dd>value. </dd></dl>

<p>Definition at line <a class="el" href="tests_2_utils_8h_source.xhtml#l00185">185</a> of file <a class="el" href="tests_2_utils_8h_source.xhtml">Utils.h</a>.</p>

<p>Referenced by <a class="el" href="tests_2_utils_8h_source.xhtml#l00208">foldl()</a>.</p>
<div class="fragment"><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;{</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;    <span class="keywordflow">return</span> value;</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;}</div></div><!-- fragment -->
</div>
</div>
<a class="anchor" id="ad933f996ccb22854ae56dd86de8cbbfe"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">auto arm_compute::test::foldl </td>
          <td>(</td>
          <td class="paramtype">F &amp;&amp;&#160;</td>
          <td class="paramname"><em>func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">T &amp;&amp;&#160;</td>
          <td class="paramname"><em>value1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">U &amp;&amp;&#160;</td>
          <td class="paramname"><em>value2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> -&gt; decltype(func(value1, value2))
</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Base case of foldl. </p>
<dl class="section return"><dt>Returns</dt><dd>func(value1, value2). </dd></dl>

<p>Definition at line <a class="el" href="tests_2_utils_8h_source.xhtml#l00195">195</a> of file <a class="el" href="tests_2_utils_8h_source.xhtml">Utils.h</a>.</p>
<div class="fragment"><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;{</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;    <span class="keywordflow">return</span> func(value1, value2);</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;}</div></div><!-- fragment -->
</div>
</div>
<a class="anchor" id="a89322cccde5e0a27d3a41085d3fd366c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">I arm_compute::test::foldl </td>
          <td>(</td>
          <td class="paramtype">F &amp;&amp;&#160;</td>
          <td class="paramname"><em>func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">I &amp;&amp;&#160;</td>
          <td class="paramname"><em>initial</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">T &amp;&amp;&#160;</td>
          <td class="paramname"><em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Vs &amp;&amp;...&#160;</td>
          <td class="paramname"><em>values</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Fold left. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">func</td><td>Binary function to be called. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">initial</td><td>Initial value. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>Argument passed to the function. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">values</td><td>Remaining arguments. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="tests_2_utils_8h_source.xhtml#l00208">208</a> of file <a class="el" href="tests_2_utils_8h_source.xhtml">Utils.h</a>.</p>

<p>References <a class="el" href="tests_2_utils_8h_source.xhtml#l00185">foldl()</a>.</p>
<div class="fragment"><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;{</div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute_1_1test.xhtml#a89322cccde5e0a27d3a41085d3fd366c">foldl</a>(std::forward&lt;F&gt;(func), func(std::forward&lt;I&gt;(initial), std::forward&lt;T&gt;(value)), std::forward&lt;Vs&gt;(values)...);</div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_xhtml_a89322cccde5e0a27d3a41085d3fd366c"><div class="ttname"><a href="namespacearm__compute_1_1test.xhtml#a89322cccde5e0a27d3a41085d3fd366c">arm_compute::test::foldl</a></div><div class="ttdeci">I foldl(F &amp;&amp;func, I &amp;&amp;initial, T &amp;&amp;value, Vs &amp;&amp;...values)</div><div class="ttdoc">Fold left. </div><div class="ttdef"><b>Definition:</b> <a href="tests_2_utils_8h_source.xhtml#l00208">Utils.h:208</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="a6fca44ec6b8d63994a8b16012a73f666"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt;<a class="el" href="structarm__compute_1_1_key_point.xhtml">KeyPoint</a>&gt; arm_compute::test::generate_random_keypoints </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &amp;&#160;</td>
          <td class="paramname"><em>shape</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>num_keypoints</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::random_device::result_type&#160;</td>
          <td class="paramname"><em>seed</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>num_levels</em> = <code>1</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Create a vector of random keypoints for pyramid representation. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">shape</td><td>The shape of the input tensor. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">num_keypoints</td><td>The number of keypoints to be created. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">seed</td><td>The random seed to be used. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">num_levels</td><td>The number of pyramid levels.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A vector that contains the requested number of random keypoints </dd></dl>

<p>Definition at line <a class="el" href="tests_2_utils_8h_source.xhtml#l00646">646</a> of file <a class="el" href="tests_2_utils_8h_source.xhtml">Utils.h</a>.</p>

<p>References <a class="el" href="_error_8h_source.xhtml#l00328">ARM_COMPUTE_ERROR_ON</a>, <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00897">arm_compute::test::fixed_point_arithmetic::detail::min()</a>, <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00957">arm_compute::test::fixed_point_arithmetic::detail::pow()</a>, <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00442">KeyPoint::tracking_status</a>, <a class="el" href="_dimensions_8h_source.xhtml#l00081">Dimensions&lt; T &gt;::x()</a>, <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00437">KeyPoint::x</a>, <a class="el" href="_dimensions_8h_source.xhtml#l00086">Dimensions&lt; T &gt;::y()</a>, and <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00438">KeyPoint::y</a>.</p>
<div class="fragment"><div class="line"><a name="l00647"></a><span class="lineno">  647</span>&#160;{</div><div class="line"><a name="l00648"></a><span class="lineno">  648</span>&#160;    std::vector&lt;KeyPoint&gt; keypoints;</div><div class="line"><a name="l00649"></a><span class="lineno">  649</span>&#160;    std::mt19937          gen(seed);</div><div class="line"><a name="l00650"></a><span class="lineno">  650</span>&#160;</div><div class="line"><a name="l00651"></a><span class="lineno">  651</span>&#160;    <span class="comment">// Calculate distribution bounds</span></div><div class="line"><a name="l00652"></a><span class="lineno">  652</span>&#160;    <span class="keyword">const</span> <span class="keyword">auto</span> <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aabcf39e3917f842dbc5fbb0d802f24d5">min</a>        = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(<a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#af782da2c5016738c96c16fee5e17670f">std::pow</a>(2, num_levels));</div><div class="line"><a name="l00653"></a><span class="lineno">  653</span>&#160;    <span class="keyword">const</span> <span class="keyword">auto</span> max_width  = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a45cde9abb508c62d67c3bb2b9bf566a5">shape</a>.x());</div><div class="line"><a name="l00654"></a><span class="lineno">  654</span>&#160;    <span class="keyword">const</span> <span class="keyword">auto</span> max_height = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a45cde9abb508c62d67c3bb2b9bf566a5">shape</a>.y());</div><div class="line"><a name="l00655"></a><span class="lineno">  655</span>&#160;</div><div class="line"><a name="l00656"></a><span class="lineno">  656</span>&#160;    <a class="code" href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(<a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aabcf39e3917f842dbc5fbb0d802f24d5">min</a> &gt; max_width || <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aabcf39e3917f842dbc5fbb0d802f24d5">min</a> &gt; max_height);</div><div class="line"><a name="l00657"></a><span class="lineno">  657</span>&#160;</div><div class="line"><a name="l00658"></a><span class="lineno">  658</span>&#160;    <span class="comment">// Create distributions</span></div><div class="line"><a name="l00659"></a><span class="lineno">  659</span>&#160;    std::uniform_int_distribution&lt;&gt; dist_w(<a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aabcf39e3917f842dbc5fbb0d802f24d5">min</a>, max_width);</div><div class="line"><a name="l00660"></a><span class="lineno">  660</span>&#160;    std::uniform_int_distribution&lt;&gt; dist_h(<a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aabcf39e3917f842dbc5fbb0d802f24d5">min</a>, max_height);</div><div class="line"><a name="l00661"></a><span class="lineno">  661</span>&#160;</div><div class="line"><a name="l00662"></a><span class="lineno">  662</span>&#160;    <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; num_keypoints; i++)</div><div class="line"><a name="l00663"></a><span class="lineno">  663</span>&#160;    {</div><div class="line"><a name="l00664"></a><span class="lineno">  664</span>&#160;        KeyPoint keypoint;</div><div class="line"><a name="l00665"></a><span class="lineno">  665</span>&#160;        keypoint.x               = dist_w(gen);</div><div class="line"><a name="l00666"></a><span class="lineno">  666</span>&#160;        keypoint.y               = dist_h(gen);</div><div class="line"><a name="l00667"></a><span class="lineno">  667</span>&#160;        keypoint.tracking_status = 1;</div><div class="line"><a name="l00668"></a><span class="lineno">  668</span>&#160;</div><div class="line"><a name="l00669"></a><span class="lineno">  669</span>&#160;        keypoints.push_back(keypoint);</div><div class="line"><a name="l00670"></a><span class="lineno">  670</span>&#160;    }</div><div class="line"><a name="l00671"></a><span class="lineno">  671</span>&#160;</div><div class="line"><a name="l00672"></a><span class="lineno">  672</span>&#160;    <span class="keywordflow">return</span> keypoints;</div><div class="line"><a name="l00673"></a><span class="lineno">  673</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a45cde9abb508c62d67c3bb2b9bf566a5"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a45cde9abb508c62d67c3bb2b9bf566a5">arm_compute::test::validation::shape</a></div><div class="ttdeci">shape</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_convolution_8cpp_source.xhtml#l00133">Convolution.cpp:133</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail_xhtml_aabcf39e3917f842dbc5fbb0d802f24d5"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aabcf39e3917f842dbc5fbb0d802f24d5">arm_compute::test::fixed_point_arithmetic::detail::min</a></div><div class="ttdeci">fixed_point&lt; T &gt; min(fixed_point&lt; T &gt; x, fixed_point&lt; T &gt; y)</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_fixed_point_8h_source.xhtml#l00897">FixedPoint.h:897</a></div></div>
<div class="ttc" id="_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_ON(cond)</div><div class="ttdoc">If the condition is true then an error message is printed and an exception thrown. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00328">Error.h:328</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail_xhtml_af782da2c5016738c96c16fee5e17670f"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#af782da2c5016738c96c16fee5e17670f">arm_compute::test::fixed_point_arithmetic::detail::pow</a></div><div class="ttdeci">fixed_point&lt; T &gt; pow(fixed_point&lt; T &gt; x, fixed_point&lt; T &gt; a)</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_fixed_point_8h_source.xhtml#l00957">FixedPoint.h:957</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="a000a9b9acb976222ee72275cf8852a3f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt;T&gt; arm_compute::test::generate_random_real </td>
          <td>(</td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>num_values</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">T&#160;</td>
          <td class="paramname"><em>min</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">T&#160;</td>
          <td class="paramname"><em>max</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::random_device::result_type&#160;</td>
          <td class="paramname"><em>seed</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Create a vector with a uniform distribution of floating point values across the specified range. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">num_values</td><td>The number of values to be created. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">min</td><td>The minimum value in distribution (inclusive). </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">max</td><td>The maximum value in distribution (inclusive). </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">seed</td><td>The random seed to be used.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A vector that contains the requested number of random floating point values </dd></dl>

<p>Definition at line <a class="el" href="tests_2_utils_8h_source.xhtml#l00623">623</a> of file <a class="el" href="tests_2_utils_8h_source.xhtml">Utils.h</a>.</p>
<div class="fragment"><div class="line"><a name="l00624"></a><span class="lineno">  624</span>&#160;{</div><div class="line"><a name="l00625"></a><span class="lineno">  625</span>&#160;    std::vector&lt;T&gt;                    v(num_values);</div><div class="line"><a name="l00626"></a><span class="lineno">  626</span>&#160;    std::mt19937                      gen(seed);</div><div class="line"><a name="l00627"></a><span class="lineno">  627</span>&#160;    std::uniform_real_distribution&lt;T&gt; dist(<a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aabcf39e3917f842dbc5fbb0d802f24d5">min</a>, <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ad91bb73431b4de1f4946ed949d444849">max</a>);</div><div class="line"><a name="l00628"></a><span class="lineno">  628</span>&#160;</div><div class="line"><a name="l00629"></a><span class="lineno">  629</span>&#160;    <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; num_values; ++i)</div><div class="line"><a name="l00630"></a><span class="lineno">  630</span>&#160;    {</div><div class="line"><a name="l00631"></a><span class="lineno">  631</span>&#160;        v.at(i) = dist(gen);</div><div class="line"><a name="l00632"></a><span class="lineno">  632</span>&#160;    }</div><div class="line"><a name="l00633"></a><span class="lineno">  633</span>&#160;</div><div class="line"><a name="l00634"></a><span class="lineno">  634</span>&#160;    <span class="keywordflow">return</span> v;</div><div class="line"><a name="l00635"></a><span class="lineno">  635</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail_xhtml_aabcf39e3917f842dbc5fbb0d802f24d5"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#aabcf39e3917f842dbc5fbb0d802f24d5">arm_compute::test::fixed_point_arithmetic::detail::min</a></div><div class="ttdeci">fixed_point&lt; T &gt; min(fixed_point&lt; T &gt; x, fixed_point&lt; T &gt; y)</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_fixed_point_8h_source.xhtml#l00897">FixedPoint.h:897</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail_xhtml_ad91bb73431b4de1f4946ed949d444849"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ad91bb73431b4de1f4946ed949d444849">arm_compute::test::fixed_point_arithmetic::detail::max</a></div><div class="ttdeci">fixed_point&lt; T &gt; max(fixed_point&lt; T &gt; x, fixed_point&lt; T &gt; y)</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_fixed_point_8h_source.xhtml#l00902">FixedPoint.h:902</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="ac7324cc960068b65c558b7d25dfe2914"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt;<a class="el" href="structarm__compute_1_1_r_o_i.xhtml">ROI</a>&gt; arm_compute::test::generate_random_rois </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &amp;&#160;</td>
          <td class="paramname"><em>shape</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classarm__compute_1_1_r_o_i_pooling_layer_info.xhtml">ROIPoolingLayerInfo</a> &amp;&#160;</td>
          <td class="paramname"><em>pool_info</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>num_rois</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::random_device::result_type&#160;</td>
          <td class="paramname"><em>seed</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Create a vector of random ROIs. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">shape</td><td>The shape of the input tensor. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">pool_info</td><td>The <a class="el" href="structarm__compute_1_1_r_o_i.xhtml" title="Region of interest. ">ROI</a> pooling information. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">num_rois</td><td>The number of ROIs to be created. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">seed</td><td>The random seed to be used.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A vector that contains the requested number of random ROIs </dd></dl>

<p>Definition at line <a class="el" href="tests_2_utils_8h_source.xhtml#l00576">576</a> of file <a class="el" href="tests_2_utils_8h_source.xhtml">Utils.h</a>.</p>

<p>References <a class="el" href="_error_8h_source.xhtml#l00328">ARM_COMPUTE_ERROR_ON</a>, <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00477">ROI::batch_idx</a>, <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00455">Rectangle::height</a>, <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00902">arm_compute::test::fixed_point_arithmetic::detail::max()</a>, <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00792">ROIPoolingLayerInfo::pooled_height()</a>, <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00787">ROIPoolingLayerInfo::pooled_width()</a>, <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00476">ROI::rect</a>, <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00797">ROIPoolingLayerInfo::spatial_scale()</a>, <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00454">Rectangle::width</a>, <a class="el" href="_dimensions_8h_source.xhtml#l00081">Dimensions&lt; T &gt;::x()</a>, <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00452">Rectangle::x</a>, <a class="el" href="_dimensions_8h_source.xhtml#l00086">Dimensions&lt; T &gt;::y()</a>, and <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00453">Rectangle::y</a>.</p>
<div class="fragment"><div class="line"><a name="l00577"></a><span class="lineno">  577</span>&#160;{</div><div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160;    <a class="code" href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>((pool_info.pooled_width() &lt; 4) || (pool_info.pooled_height() &lt; 4));</div><div class="line"><a name="l00579"></a><span class="lineno">  579</span>&#160;</div><div class="line"><a name="l00580"></a><span class="lineno">  580</span>&#160;    std::vector&lt;ROI&gt; rois;</div><div class="line"><a name="l00581"></a><span class="lineno">  581</span>&#160;    std::mt19937     gen(seed);</div><div class="line"><a name="l00582"></a><span class="lineno">  582</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">int</span>        pool_width  = pool_info.pooled_width();</div><div class="line"><a name="l00583"></a><span class="lineno">  583</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">int</span>        pool_height = pool_info.pooled_height();</div><div class="line"><a name="l00584"></a><span class="lineno">  584</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">float</span>      roi_scale   = pool_info.spatial_scale();</div><div class="line"><a name="l00585"></a><span class="lineno">  585</span>&#160;</div><div class="line"><a name="l00586"></a><span class="lineno">  586</span>&#160;    <span class="comment">// Calculate distribution bounds</span></div><div class="line"><a name="l00587"></a><span class="lineno">  587</span>&#160;    <span class="keyword">const</span> <span class="keyword">auto</span> scaled_width  = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>((<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a45cde9abb508c62d67c3bb2b9bf566a5">shape</a>.x() / roi_scale) / pool_width);</div><div class="line"><a name="l00588"></a><span class="lineno">  588</span>&#160;    <span class="keyword">const</span> <span class="keyword">auto</span> scaled_height = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>((<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a45cde9abb508c62d67c3bb2b9bf566a5">shape</a>.y() / roi_scale) / pool_height);</div><div class="line"><a name="l00589"></a><span class="lineno">  589</span>&#160;    <span class="keyword">const</span> <span class="keyword">auto</span> min_width     = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(pool_width / roi_scale);</div><div class="line"><a name="l00590"></a><span class="lineno">  590</span>&#160;    <span class="keyword">const</span> <span class="keyword">auto</span> min_height    = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(pool_height / roi_scale);</div><div class="line"><a name="l00591"></a><span class="lineno">  591</span>&#160;</div><div class="line"><a name="l00592"></a><span class="lineno">  592</span>&#160;    <span class="comment">// Create distributions</span></div><div class="line"><a name="l00593"></a><span class="lineno">  593</span>&#160;    std::uniform_int_distribution&lt;int&gt; dist_batch(0, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a45cde9abb508c62d67c3bb2b9bf566a5">shape</a>[3] - 1);</div><div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;    std::uniform_int_distribution&lt;int&gt; dist_x(0, scaled_width);</div><div class="line"><a name="l00595"></a><span class="lineno">  595</span>&#160;    std::uniform_int_distribution&lt;int&gt; dist_y(0, scaled_height);</div><div class="line"><a name="l00596"></a><span class="lineno">  596</span>&#160;    std::uniform_int_distribution&lt;int&gt; dist_w(min_width, <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ad91bb73431b4de1f4946ed949d444849">std::max</a>(min_width, (pool_width - 2) * scaled_width));</div><div class="line"><a name="l00597"></a><span class="lineno">  597</span>&#160;    std::uniform_int_distribution&lt;int&gt; dist_h(min_height, <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ad91bb73431b4de1f4946ed949d444849">std::max</a>(min_height, (pool_height - 2) * scaled_height));</div><div class="line"><a name="l00598"></a><span class="lineno">  598</span>&#160;</div><div class="line"><a name="l00599"></a><span class="lineno">  599</span>&#160;    <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> r = 0; r &lt; num_rois; ++r)</div><div class="line"><a name="l00600"></a><span class="lineno">  600</span>&#160;    {</div><div class="line"><a name="l00601"></a><span class="lineno">  601</span>&#160;        ROI roi;</div><div class="line"><a name="l00602"></a><span class="lineno">  602</span>&#160;        roi.batch_idx   = dist_batch(gen);</div><div class="line"><a name="l00603"></a><span class="lineno">  603</span>&#160;        roi.rect.x      = dist_x(gen);</div><div class="line"><a name="l00604"></a><span class="lineno">  604</span>&#160;        roi.rect.y      = dist_y(gen);</div><div class="line"><a name="l00605"></a><span class="lineno">  605</span>&#160;        roi.rect.width  = dist_w(gen);</div><div class="line"><a name="l00606"></a><span class="lineno">  606</span>&#160;        roi.rect.height = dist_h(gen);</div><div class="line"><a name="l00607"></a><span class="lineno">  607</span>&#160;        rois.push_back(roi);</div><div class="line"><a name="l00608"></a><span class="lineno">  608</span>&#160;    }</div><div class="line"><a name="l00609"></a><span class="lineno">  609</span>&#160;</div><div class="line"><a name="l00610"></a><span class="lineno">  610</span>&#160;    <span class="keywordflow">return</span> rois;</div><div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a45cde9abb508c62d67c3bb2b9bf566a5"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a45cde9abb508c62d67c3bb2b9bf566a5">arm_compute::test::validation::shape</a></div><div class="ttdeci">shape</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_convolution_8cpp_source.xhtml#l00133">Convolution.cpp:133</a></div></div>
<div class="ttc" id="_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_ON(cond)</div><div class="ttdoc">If the condition is true then an error message is printed and an exception thrown. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00328">Error.h:328</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail_xhtml_ad91bb73431b4de1f4946ed949d444849"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ad91bb73431b4de1f4946ed949d444849">arm_compute::test::fixed_point_arithmetic::detail::max</a></div><div class="ttdeci">fixed_point&lt; T &gt; max(fixed_point&lt; T &gt; x, fixed_point&lt; T &gt; y)</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_fixed_point_8h_source.xhtml#l00902">FixedPoint.h:902</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="ac7dbe33793790fc37a5eda11ed6b0273"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58">Format</a> arm_compute::test::get_channel_format </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455a">Channel</a>&#160;</td>
          <td class="paramname"><em>channel</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return the format of a channel. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">channel</td><td>Channel type.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Format of the given channel. </dd></dl>

<p>Definition at line <a class="el" href="tests_2_utils_8h_source.xhtml#l00167">167</a> of file <a class="el" href="tests_2_utils_8h_source.xhtml">Utils.h</a>.</p>

<p>References <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571">arm_compute::B</a>, <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aadfcf28d0734569a6a693bc8194de62bf">arm_compute::G</a>, <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aae1e1d3d40573127e9ee0480caf1283d6">arm_compute::R</a>, and <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a6669348b484e3008dca2bfa8e85e40b5">arm_compute::U8</a>.</p>

<p>Referenced by <a class="el" href="_assets_library_8cpp_source.xhtml#l00276">AssetsLibrary::fill()</a>.</p>
<div class="fragment"><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;{</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;    <span class="keywordflow">switch</span>(channel)</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;    {</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;        <span class="keywordflow">case</span> Channel::R:</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;        <span class="keywordflow">case</span> Channel::G:</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;        <span class="keywordflow">case</span> Channel::B:</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;            <span class="keywordflow">return</span> Format::U8;</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;        <span class="keywordflow">default</span>:</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;            <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;Unsupported channel&quot;</span>);</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;    }</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;}</div></div><!-- fragment -->
</div>
</div>
<a class="anchor" id="aa337ab76176f3c4193642ac6de3a61cf"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58">Format</a> arm_compute::test::get_format_for_channel </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455a">Channel</a>&#160;</td>
          <td class="paramname"><em>channel</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Look up the format corresponding to a channel. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">channel</td><td>Channel type.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Format that contains the given channel. </dd></dl>

<p>Definition at line <a class="el" href="tests_2_utils_8h_source.xhtml#l00148">148</a> of file <a class="el" href="tests_2_utils_8h_source.xhtml">Utils.h</a>.</p>

<p>References <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aa9d5ed678fe57bcca610140957afab571">arm_compute::B</a>, <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aadfcf28d0734569a6a693bc8194de62bf">arm_compute::G</a>, <a class="el" href="namespacearm__compute.xhtml#a1ce9b523fd4f3b5bbcadcd796183455aae1e1d3d40573127e9ee0480caf1283d6">arm_compute::R</a>, and <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a30ff380a3be74628024063a99fba10f0">arm_compute::RGB888</a>.</p>

<p>Referenced by <a class="el" href="_assets_library_8cpp_source.xhtml#l00271">AssetsLibrary::fill()</a>, and <a class="el" href="_assets_library_8cpp_source.xhtml#l00490">AssetsLibrary::get()</a>.</p>
<div class="fragment"><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;{</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;    <span class="keywordflow">switch</span>(channel)</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;    {</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;        <span class="keywordflow">case</span> Channel::R:</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;        <span class="keywordflow">case</span> Channel::G:</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;        <span class="keywordflow">case</span> Channel::B:</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;            <span class="keywordflow">return</span> Format::RGB888;</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;        <span class="keywordflow">default</span>:</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;            <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;Unsupported channel&quot;</span>);</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;    }</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;}</div></div><!-- fragment -->
</div>
</div>
<a class="anchor" id="ae47155d6186155ec4da9295764b3c05a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::string arm_compute::test::get_typestring </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a>&#160;</td>
          <td class="paramname"><em>data_type</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Obtain numpy type string from DataType. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">data_type</td><td>Data type.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>numpy type string. </dd></dl>

<p>Definition at line <a class="el" href="tests_2_utils_8h_source.xhtml#l00688">688</a> of file <a class="el" href="tests_2_utils_8h_source.xhtml">Utils.h</a>.</p>

<p>References <a class="el" href="_error_8h_source.xhtml#l00260">ARM_COMPUTE_ERROR</a>, <a class="el" href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00123">arm_compute::test::validation::c</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a44ad4ef5a76e6aa6fb3e3fa079a54fda">arm_compute::F32</a>, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a1ad5f6f3069070ec4cbbdc94d5e61e0e">arm_compute::F64</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a6e0b0886efb94aec797f6b830329b72c">arm_compute::S16</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58aa1e28eee0339658d39a8b4d325b56e9c">arm_compute::S32</a>, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a115dca124dc6423c7a400b8a8a0270cc">arm_compute::S64</a>, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6aafb0fced528eaac5fe170b763cda5975">arm_compute::S8</a>, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6abd7ef6d4f35bc7d05c559b65032f15d1">arm_compute::SIZET</a>, <a class="el" href="_toolchain_support_8h_source.xhtml#l00197">arm_compute::support::cpp11::to_string()</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58aef9ef3ebca4d2b64b6ec83808bafa5f2">arm_compute::U16</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58ac8bd5bedff8ef192d39a962afc0e19ee">arm_compute::U32</a>, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a31d65cccd6593e4101db93fb878abcaa">arm_compute::U64</a>, and <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a6669348b484e3008dca2bfa8e85e40b5">arm_compute::U8</a>.</p>

<p>Referenced by <a class="el" href="_assets_library_8h_source.xhtml#l00739">AssetsLibrary::fill_layer_data()</a>.</p>
<div class="fragment"><div class="line"><a name="l00689"></a><span class="lineno">  689</span>&#160;{</div><div class="line"><a name="l00690"></a><span class="lineno">  690</span>&#160;    <span class="comment">// Check endianness</span></div><div class="line"><a name="l00691"></a><span class="lineno">  691</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 1;</div><div class="line"><a name="l00692"></a><span class="lineno">  692</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span>        *<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a497347573faa3778743ddf277f861094">c</a> = <span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span><span class="keywordtype">char</span> *<span class="keyword">&gt;</span>(&amp;i);</div><div class="line"><a name="l00693"></a><span class="lineno">  693</span>&#160;    std::string        endianness;</div><div class="line"><a name="l00694"></a><span class="lineno">  694</span>&#160;    <span class="keywordflow">if</span>(*c == 1)</div><div class="line"><a name="l00695"></a><span class="lineno">  695</span>&#160;    {</div><div class="line"><a name="l00696"></a><span class="lineno">  696</span>&#160;        endianness = std::string(<span class="stringliteral">&quot;&lt;&quot;</span>);</div><div class="line"><a name="l00697"></a><span class="lineno">  697</span>&#160;    }</div><div class="line"><a name="l00698"></a><span class="lineno">  698</span>&#160;    <span class="keywordflow">else</span></div><div class="line"><a name="l00699"></a><span class="lineno">  699</span>&#160;    {</div><div class="line"><a name="l00700"></a><span class="lineno">  700</span>&#160;        endianness = std::string(<span class="stringliteral">&quot;&gt;&quot;</span>);</div><div class="line"><a name="l00701"></a><span class="lineno">  701</span>&#160;    }</div><div class="line"><a name="l00702"></a><span class="lineno">  702</span>&#160;    <span class="keyword">const</span> std::string no_endianness(<span class="stringliteral">&quot;|&quot;</span>);</div><div class="line"><a name="l00703"></a><span class="lineno">  703</span>&#160;</div><div class="line"><a name="l00704"></a><span class="lineno">  704</span>&#160;    <span class="keywordflow">switch</span>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ac2ad7f431e3446fddcd9b6b9f93c4c14">data_type</a>)</div><div class="line"><a name="l00705"></a><span class="lineno">  705</span>&#160;    {</div><div class="line"><a name="l00706"></a><span class="lineno">  706</span>&#160;        <span class="keywordflow">case</span> DataType::U8:</div><div class="line"><a name="l00707"></a><span class="lineno">  707</span>&#160;            <span class="keywordflow">return</span> no_endianness + <span class="stringliteral">&quot;u&quot;</span> + <a class="code" href="namespacearm__compute_1_1graph.xhtml#a44f65160a94c7c66eb75adc1f714c0e7">support::cpp11::to_string</a>(<span class="keyword">sizeof</span>(uint8_t));</div><div class="line"><a name="l00708"></a><span class="lineno">  708</span>&#160;        <span class="keywordflow">case</span> DataType::S8:</div><div class="line"><a name="l00709"></a><span class="lineno">  709</span>&#160;            <span class="keywordflow">return</span> no_endianness + <span class="stringliteral">&quot;i&quot;</span> + <a class="code" href="namespacearm__compute_1_1graph.xhtml#a44f65160a94c7c66eb75adc1f714c0e7">support::cpp11::to_string</a>(<span class="keyword">sizeof</span>(int8_t));</div><div class="line"><a name="l00710"></a><span class="lineno">  710</span>&#160;        <span class="keywordflow">case</span> DataType::U16:</div><div class="line"><a name="l00711"></a><span class="lineno">  711</span>&#160;            <span class="keywordflow">return</span> endianness + <span class="stringliteral">&quot;u&quot;</span> + <a class="code" href="namespacearm__compute_1_1graph.xhtml#a44f65160a94c7c66eb75adc1f714c0e7">support::cpp11::to_string</a>(<span class="keyword">sizeof</span>(uint16_t));</div><div class="line"><a name="l00712"></a><span class="lineno">  712</span>&#160;        <span class="keywordflow">case</span> DataType::S16:</div><div class="line"><a name="l00713"></a><span class="lineno">  713</span>&#160;            <span class="keywordflow">return</span> endianness + <span class="stringliteral">&quot;i&quot;</span> + <a class="code" href="namespacearm__compute_1_1graph.xhtml#a44f65160a94c7c66eb75adc1f714c0e7">support::cpp11::to_string</a>(<span class="keyword">sizeof</span>(int16_t));</div><div class="line"><a name="l00714"></a><span class="lineno">  714</span>&#160;        <span class="keywordflow">case</span> DataType::U32:</div><div class="line"><a name="l00715"></a><span class="lineno">  715</span>&#160;            <span class="keywordflow">return</span> endianness + <span class="stringliteral">&quot;u&quot;</span> + <a class="code" href="namespacearm__compute_1_1graph.xhtml#a44f65160a94c7c66eb75adc1f714c0e7">support::cpp11::to_string</a>(<span class="keyword">sizeof</span>(uint32_t));</div><div class="line"><a name="l00716"></a><span class="lineno">  716</span>&#160;        <span class="keywordflow">case</span> DataType::S32:</div><div class="line"><a name="l00717"></a><span class="lineno">  717</span>&#160;            <span class="keywordflow">return</span> endianness + <span class="stringliteral">&quot;i&quot;</span> + <a class="code" href="namespacearm__compute_1_1graph.xhtml#a44f65160a94c7c66eb75adc1f714c0e7">support::cpp11::to_string</a>(<span class="keyword">sizeof</span>(int32_t));</div><div class="line"><a name="l00718"></a><span class="lineno">  718</span>&#160;        <span class="keywordflow">case</span> DataType::U64:</div><div class="line"><a name="l00719"></a><span class="lineno">  719</span>&#160;            <span class="keywordflow">return</span> endianness + <span class="stringliteral">&quot;u&quot;</span> + <a class="code" href="namespacearm__compute_1_1graph.xhtml#a44f65160a94c7c66eb75adc1f714c0e7">support::cpp11::to_string</a>(<span class="keyword">sizeof</span>(uint64_t));</div><div class="line"><a name="l00720"></a><span class="lineno">  720</span>&#160;        <span class="keywordflow">case</span> DataType::S64:</div><div class="line"><a name="l00721"></a><span class="lineno">  721</span>&#160;            <span class="keywordflow">return</span> endianness + <span class="stringliteral">&quot;i&quot;</span> + <a class="code" href="namespacearm__compute_1_1graph.xhtml#a44f65160a94c7c66eb75adc1f714c0e7">support::cpp11::to_string</a>(<span class="keyword">sizeof</span>(int64_t));</div><div class="line"><a name="l00722"></a><span class="lineno">  722</span>&#160;        <span class="keywordflow">case</span> DataType::F32:</div><div class="line"><a name="l00723"></a><span class="lineno">  723</span>&#160;            <span class="keywordflow">return</span> endianness + <span class="stringliteral">&quot;f&quot;</span> + <a class="code" href="namespacearm__compute_1_1graph.xhtml#a44f65160a94c7c66eb75adc1f714c0e7">support::cpp11::to_string</a>(<span class="keyword">sizeof</span>(<span class="keywordtype">float</span>));</div><div class="line"><a name="l00724"></a><span class="lineno">  724</span>&#160;        <span class="keywordflow">case</span> DataType::F64:</div><div class="line"><a name="l00725"></a><span class="lineno">  725</span>&#160;            <span class="keywordflow">return</span> endianness + <span class="stringliteral">&quot;f&quot;</span> + <a class="code" href="namespacearm__compute_1_1graph.xhtml#a44f65160a94c7c66eb75adc1f714c0e7">support::cpp11::to_string</a>(<span class="keyword">sizeof</span>(<span class="keywordtype">double</span>));</div><div class="line"><a name="l00726"></a><span class="lineno">  726</span>&#160;        <span class="keywordflow">case</span> DataType::SIZET:</div><div class="line"><a name="l00727"></a><span class="lineno">  727</span>&#160;            <span class="keywordflow">return</span> endianness + <span class="stringliteral">&quot;u&quot;</span> + <a class="code" href="namespacearm__compute_1_1graph.xhtml#a44f65160a94c7c66eb75adc1f714c0e7">support::cpp11::to_string</a>(<span class="keyword">sizeof</span>(<span class="keywordtype">size_t</span>));</div><div class="line"><a name="l00728"></a><span class="lineno">  728</span>&#160;        <span class="keywordflow">default</span>:</div><div class="line"><a name="l00729"></a><span class="lineno">  729</span>&#160;            <a class="code" href="_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">&quot;NOT SUPPORTED!&quot;</span>);</div><div class="line"><a name="l00730"></a><span class="lineno">  730</span>&#160;    }</div><div class="line"><a name="l00731"></a><span class="lineno">  731</span>&#160;}</div><div class="ttc" id="_error_8h_xhtml_a05b19c75afe9c24200a62b9724734bbd"><div class="ttname"><a href="_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR(...)</div><div class="ttdoc">Print the given message then throw an std::runtime_error. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00260">Error.h:260</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1graph_xhtml_a44f65160a94c7c66eb75adc1f714c0e7"><div class="ttname"><a href="namespacearm__compute_1_1graph.xhtml#a44f65160a94c7c66eb75adc1f714c0e7">arm_compute::graph::to_string</a></div><div class="ttdeci">std::string to_string(const ActivationLayerInfo::ActivationFunction &amp;act_function)</div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2graph_2_type_printer_8h_source.xhtml#l00204">TypePrinter.h:204</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_ac2ad7f431e3446fddcd9b6b9f93c4c14"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#ac2ad7f431e3446fddcd9b6b9f93c4c14">arm_compute::test::validation::data_type</a></div><div class="ttdeci">data_type</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00116">GEMM.cpp:116</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a497347573faa3778743ddf277f861094"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a497347573faa3778743ddf277f861094">arm_compute::test::validation::c</a></div><div class="ttdeci">CLTensor c</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00123">GEMM.cpp:123</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="a24d8c0391cfa38e78969b6ad97c0ff09"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classarm__compute_1_1_coordinates.xhtml">Coordinates</a> arm_compute::test::index2coord </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &amp;&#160;</td>
          <td class="paramname"><em>shape</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>index</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Convert a linear index into n-dimensional coordinates. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">shape</td><td>Shape of the n-dimensional tensor. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">index</td><td>Linear index specifying the i-th element.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>n-dimensional coordinates. </dd></dl>

<p>Definition at line <a class="el" href="tests_2_utils_8h_source.xhtml#l00419">419</a> of file <a class="el" href="tests_2_utils_8h_source.xhtml">Utils.h</a>.</p>

<p>References <a class="el" href="_error_8h_source.xhtml#l00319">ARM_COMPUTE_ERROR_ON_MSG</a>, <a class="el" href="_dimensions_8h_source.xhtml#l00122">Dimensions&lt; T &gt;::num_dimensions()</a>, <a class="el" href="_tensor_shape_8h_source.xhtml#l00078">TensorShape::set()</a>, and <a class="el" href="_tensor_shape_8h_source.xhtml#l00157">TensorShape::total_size()</a>.</p>

<p>Referenced by <a class="el" href="reference_2_box3x3_8cpp_source.xhtml#l00038">arm_compute::test::validation::reference::box3x3()</a>, <a class="el" href="reference_2_channel_combine_8cpp_source.xhtml#l00092">arm_compute::test::validation::reference::channel_combine()</a>, <a class="el" href="reference_2_convolution_8cpp_source.xhtml#l00038">arm_compute::test::validation::reference::convolution()</a>, <a class="el" href="tests_2validation_2_u_n_i_t_2_utils_8cpp_source.xhtml#l00054">DATA_TEST_CASE()</a>, <a class="el" href="reference_2_derivative_8cpp_source.xhtml#l00055">arm_compute::test::validation::reference::derivative()</a>, <a class="el" href="reference_2_dilate_8cpp_source.xhtml#l00041">arm_compute::test::validation::reference::dilate()</a>, <a class="el" href="reference_2_erode_8cpp_source.xhtml#l00041">arm_compute::test::validation::reference::erode()</a>, <a class="el" href="reference_2_fast_corners_8cpp_source.xhtml#l00152">arm_compute::test::validation::reference::fast_corners()</a>, <a class="el" href="_assets_library_8h_source.xhtml#l00453">AssetsLibrary::fill()</a>, <a class="el" href="reference_2_gaussian3x3_8cpp_source.xhtml#l00038">arm_compute::test::validation::reference::gaussian3x3()</a>, <a class="el" href="reference_2_gaussian5x5_8cpp_source.xhtml#l00038">arm_compute::test::validation::reference::gaussian5x5()</a>, <a class="el" href="validation_2reference_2_median3x3_8cpp_source.xhtml#l00044">arm_compute::test::validation::reference::median3x3()</a>, <a class="el" href="reference_2_non_linear_filter_8cpp_source.xhtml#l00036">arm_compute::test::validation::reference::non_linear_filter()</a>, <a class="el" href="_non_maxima_suppression_8cpp_source.xhtml#l00038">arm_compute::test::validation::reference::non_maxima_suppression()</a>, <a class="el" href="reference_2_permute_8cpp_source.xhtml#l00038">arm_compute::test::validation::reference::permute()</a>, <a class="el" href="reference_2_remap_8cpp_source.xhtml#l00041">arm_compute::test::validation::reference::remap()</a>, <a class="el" href="validation_2reference_2_scale_8cpp_source.xhtml#l00040">arm_compute::test::validation::reference::scale()</a>, <a class="el" href="reference_2_scharr_8cpp_source.xhtml#l00062">arm_compute::test::validation::reference::scharr()</a>, <a class="el" href="reference_2_sobel_8cpp_source.xhtml#l00106">arm_compute::test::validation::reference::sobel()</a>, <a class="el" href="validation_2reference_2_transpose_8cpp_source.xhtml#l00039">arm_compute::test::validation::reference::transpose()</a>, <a class="el" href="tests_2validation_2reference_2_utils_8cpp_source.xhtml#l00069">arm_compute::test::validation::transpose()</a>, <a class="el" href="_validation_8cpp_source.xhtml#l00181">arm_compute::test::validation::validate()</a>, <a class="el" href="_validation_8h_source.xhtml#l00457">arm_compute::test::validation::validate_wrap()</a>, <a class="el" href="reference_2_warp_affine_8cpp_source.xhtml#l00050">arm_compute::test::validation::reference::warp_affine()</a>, and <a class="el" href="reference_2_warp_perspective_8cpp_source.xhtml#l00038">arm_compute::test::validation::reference::warp_perspective()</a>.</p>
<div class="fragment"><div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;{</div><div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;    <span class="keywordtype">int</span> num_elements = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a45cde9abb508c62d67c3bb2b9bf566a5">shape</a>.total_size();</div><div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;</div><div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;    <a class="code" href="_error_8h.xhtml#a5bbdcf574d3f5e412fa6a1117911e67b">ARM_COMPUTE_ERROR_ON_MSG</a>(index &lt; 0 || index &gt;= num_elements, <span class="stringliteral">&quot;Index has to be in [0, num_elements]&quot;</span>);</div><div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;    <a class="code" href="_error_8h.xhtml#a5bbdcf574d3f5e412fa6a1117911e67b">ARM_COMPUTE_ERROR_ON_MSG</a>(num_elements == 0, <span class="stringliteral">&quot;Cannot create coordinate from empty shape&quot;</span>);</div><div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;</div><div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;    Coordinates coord{ 0 };</div><div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;</div><div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;    <span class="keywordflow">for</span>(<span class="keywordtype">int</span> d = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a45cde9abb508c62d67c3bb2b9bf566a5">shape</a>.num_dimensions() - 1; d &gt;= 0; --d)</div><div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;    {</div><div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;        num_elements /= <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a45cde9abb508c62d67c3bb2b9bf566a5">shape</a>[d];</div><div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;        coord.set(d, index / num_elements);</div><div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;        index %= num_elements;</div><div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;    }</div><div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;</div><div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;    <span class="keywordflow">return</span> coord;</div><div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a45cde9abb508c62d67c3bb2b9bf566a5"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a45cde9abb508c62d67c3bb2b9bf566a5">arm_compute::test::validation::shape</a></div><div class="ttdeci">shape</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_convolution_8cpp_source.xhtml#l00133">Convolution.cpp:133</a></div></div>
<div class="ttc" id="_error_8h_xhtml_a5bbdcf574d3f5e412fa6a1117911e67b"><div class="ttname"><a href="_error_8h.xhtml#a5bbdcf574d3f5e412fa6a1117911e67b">ARM_COMPUTE_ERROR_ON_MSG</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_ON_MSG(cond,...)</div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00319">Error.h:319</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="a856b55fc20ddcbdbeb84c35ae27bedac"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool arm_compute::test::is_in_valid_region </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structarm__compute_1_1_valid_region.xhtml">ValidRegion</a> &amp;&#160;</td>
          <td class="paramname"><em>valid_region</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classarm__compute_1_1_coordinates.xhtml">Coordinates</a>&#160;</td>
          <td class="paramname"><em>coord</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Check if a coordinate is within a valid region. </p>

<p>Definition at line <a class="el" href="tests_2_utils_8h_source.xhtml#l00466">466</a> of file <a class="el" href="tests_2_utils_8h_source.xhtml">Utils.h</a>.</p>

<p>References <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00258">ValidRegion::end()</a>, <a class="el" href="_dimensions_8h_source.xhtml#l00045">Dimensions&lt; int &gt;::num_max_dimensions</a>, and <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00252">ValidRegion::start()</a>.</p>

<p>Referenced by <a class="el" href="reference_2_derivative_8cpp_source.xhtml#l00055">arm_compute::test::validation::reference::derivative()</a>, <a class="el" href="reference_2_fast_corners_8cpp_source.xhtml#l00152">arm_compute::test::validation::reference::fast_corners()</a>, <a class="el" href="reference_2_non_linear_filter_8cpp_source.xhtml#l00036">arm_compute::test::validation::reference::non_linear_filter()</a>, <a class="el" href="_non_maxima_suppression_8cpp_source.xhtml#l00038">arm_compute::test::validation::reference::non_maxima_suppression()</a>, <a class="el" href="reference_2_scharr_8cpp_source.xhtml#l00062">arm_compute::test::validation::reference::scharr()</a>, <a class="el" href="reference_2_sobel_8cpp_source.xhtml#l00106">arm_compute::test::validation::reference::sobel()</a>, <a class="el" href="_validation_8h_source.xhtml#l00382">arm_compute::test::validation::validate()</a>, and <a class="el" href="_validation_8h_source.xhtml#l00457">arm_compute::test::validation::validate_wrap()</a>.</p>
<div class="fragment"><div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;{</div><div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;    <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> d = 0; d &lt; Coordinates::num_max_dimensions; ++d)</div><div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;    {</div><div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;        <span class="keywordflow">if</span>(coord[d] &lt; valid_region.start(d) || coord[d] &gt;= valid_region.end(d))</div><div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;        {</div><div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;        }</div><div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;    }</div><div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;</div><div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;}</div></div><!-- fragment -->
</div>
</div>
<a class="anchor" id="aa18932675cbb5eb9c9dbf8ff4d7106c7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::string arm_compute::test::join </td>
          <td>(</td>
          <td class="paramtype">T&#160;</td>
          <td class="paramname"><em>first</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">T&#160;</td>
          <td class="paramname"><em>last</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>separator</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Helper function to concatenate multiple strings. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">first</td><td><a class="el" href="classarm__compute_1_1_iterator.xhtml" title="Iterator updated by execute_window_loop for each window element. ">Iterator</a> pointing to the first element to be concatenated. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">last</td><td><a class="el" href="classarm__compute_1_1_iterator.xhtml" title="Iterator updated by execute_window_loop for each window element. ">Iterator</a> pointing behind the last element to be concatenated. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">separator</td><td>String used to join the elements.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>String containing all elements joined by <code>separator</code>. </dd></dl>

<p>Definition at line <a class="el" href="tests_2framework_2_utils_8h_source.xhtml#l00093">93</a> of file <a class="el" href="tests_2framework_2_utils_8h_source.xhtml">Utils.h</a>.</p>

<p>References <a class="el" href="accumulate_8cl_source.xhtml#l00041">accumulate()</a>.</p>

<p>Referenced by <a class="el" href="_framework_8cpp_source.xhtml#l00103">Framework::init()</a>, <a class="el" href="tests_2framework_2_utils_8h_source.xhtml#l00136">join()</a>, and <a class="el" href="_j_s_o_n_printer_8cpp_source.xhtml#l00172">JSONPrinter::print_measurements()</a>.</p>
<div class="fragment"><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;{</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="accumulate_8cl.xhtml#a00e540076dd545ad59ac7482f8cdf514">std::accumulate</a>(std::next(first), last, *first, [&amp;separator](<span class="keyword">const</span> std::string &amp; base, <span class="keyword">const</span> std::string &amp; suffix)</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;    {</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;        <span class="keywordflow">return</span> base + separator + suffix;</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;    });</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;}</div><div class="ttc" id="accumulate_8cl_xhtml_a00e540076dd545ad59ac7482f8cdf514"><div class="ttname"><a href="accumulate_8cl.xhtml#a00e540076dd545ad59ac7482f8cdf514">accumulate</a></div><div class="ttdeci">__kernel void accumulate(__global uchar *input_ptr, uint input_stride_x, uint input_step_x, uint input_stride_y, uint input_step_y, uint input_offset_first_element_in_bytes, __global uchar *accu_ptr, uint accu_stride_x, uint accu_step_x, uint accu_stride_y, uint accu_step_y, uint accu_offset_first_element_in_bytes)</div><div class="ttdoc">This function accumulates an input image into output image. </div><div class="ttdef"><b>Definition:</b> <a href="accumulate_8cl_source.xhtml#l00041">accumulate.cl:41</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="a898a0423aace06af0f3a18a26a972a1a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::string arm_compute::test::join </td>
          <td>(</td>
          <td class="paramtype">T &amp;&amp;&#160;</td>
          <td class="paramname"><em>first</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">T &amp;&amp;&#160;</td>
          <td class="paramname"><em>last</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>separator</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">UnaryOp &amp;&amp;&#160;</td>
          <td class="paramname"><em>op</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Helper function to concatenate multiple values. </p>
<p>All values are converted to std::string using the provided operation before being joined.</p>
<p>The signature of op has to be equivalent to std::string op(const T::value_type &amp;val).</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">first</td><td><a class="el" href="classarm__compute_1_1_iterator.xhtml" title="Iterator updated by execute_window_loop for each window element. ">Iterator</a> pointing to the first element to be concatenated. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">last</td><td><a class="el" href="classarm__compute_1_1_iterator.xhtml" title="Iterator updated by execute_window_loop for each window element. ">Iterator</a> pointing behind the last element to be concatenated. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">separator</td><td>String used to join the elements. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">op</td><td>Conversion function.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>String containing all elements joined by <code>separator</code>. </dd></dl>

<p>Definition at line <a class="el" href="tests_2framework_2_utils_8h_source.xhtml#l00117">117</a> of file <a class="el" href="tests_2framework_2_utils_8h_source.xhtml">Utils.h</a>.</p>

<p>References <a class="el" href="accumulate_8cl_source.xhtml#l00041">accumulate()</a>.</p>
<div class="fragment"><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;{</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="accumulate_8cl.xhtml#a00e540076dd545ad59ac7482f8cdf514">std::accumulate</a>(std::next(first), last, op(*first), [&amp;separator, &amp;op](<span class="keyword">const</span> std::string &amp; base, <span class="keyword">const</span> <span class="keyword">typename</span> T::value_type &amp; suffix)</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;    {</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;        <span class="keywordflow">return</span> base + separator + op(suffix);</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;    });</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;}</div><div class="ttc" id="accumulate_8cl_xhtml_a00e540076dd545ad59ac7482f8cdf514"><div class="ttname"><a href="accumulate_8cl.xhtml#a00e540076dd545ad59ac7482f8cdf514">accumulate</a></div><div class="ttdeci">__kernel void accumulate(__global uchar *input_ptr, uint input_stride_x, uint input_step_x, uint input_stride_y, uint input_step_y, uint input_offset_first_element_in_bytes, __global uchar *accu_ptr, uint accu_stride_x, uint accu_step_x, uint accu_stride_y, uint accu_step_y, uint accu_offset_first_element_in_bytes)</div><div class="ttdoc">This function accumulates an input image into output image. </div><div class="ttdef"><b>Definition:</b> <a href="accumulate_8cl_source.xhtml#l00041">accumulate.cl:41</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="a69835710fc772315f4e65ce156034530"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::string arm_compute::test::join </td>
          <td>(</td>
          <td class="paramtype">T &amp;&amp;&#160;</td>
          <td class="paramname"><em>first</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">T &amp;&amp;&#160;</td>
          <td class="paramname"><em>last</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>separator</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Helper function to concatenate multiple values. </p>
<p>All values are converted to std::string using std::to_string before being joined.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">first</td><td><a class="el" href="classarm__compute_1_1_iterator.xhtml" title="Iterator updated by execute_window_loop for each window element. ">Iterator</a> pointing to the first element to be concatenated. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">last</td><td><a class="el" href="classarm__compute_1_1_iterator.xhtml" title="Iterator updated by execute_window_loop for each window element. ">Iterator</a> pointing behind the last element to be concatenated. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">separator</td><td>String used to join the elements.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>String containing all elements joined by <code>separator</code>. </dd></dl>

<p>Definition at line <a class="el" href="tests_2framework_2_utils_8h_source.xhtml#l00136">136</a> of file <a class="el" href="tests_2framework_2_utils_8h_source.xhtml">Utils.h</a>.</p>

<p>References <a class="el" href="tests_2framework_2_utils_8h_source.xhtml#l00093">join()</a>, and <a class="el" href="_toolchain_support_8h_source.xhtml#l00197">arm_compute::support::cpp11::to_string()</a>.</p>
<div class="fragment"><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;{</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute_1_1test.xhtml#a69835710fc772315f4e65ce156034530">join</a>(std::forward&lt;T&gt;(first), std::forward&lt;T&gt;(last), separator, <a class="code" href="namespacearm__compute_1_1graph.xhtml#a44f65160a94c7c66eb75adc1f714c0e7">support::cpp11::to_string</a>);</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_xhtml_a69835710fc772315f4e65ce156034530"><div class="ttname"><a href="namespacearm__compute_1_1test.xhtml#a69835710fc772315f4e65ce156034530">arm_compute::test::join</a></div><div class="ttdeci">std::string join(T &amp;&amp;first, T &amp;&amp;last, const std::string &amp;separator)</div><div class="ttdoc">Helper function to concatenate multiple values. </div><div class="ttdef"><b>Definition:</b> <a href="tests_2framework_2_utils_8h_source.xhtml#l00136">Utils.h:136</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1graph_xhtml_a44f65160a94c7c66eb75adc1f714c0e7"><div class="ttname"><a href="namespacearm__compute_1_1graph.xhtml#a44f65160a94c7c66eb75adc1f714c0e7">arm_compute::graph::to_string</a></div><div class="ttdeci">std::string to_string(const ActivationLayerInfo::ActivationFunction &amp;act_function)</div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2graph_2_type_printer_8h_source.xhtml#l00204">TypePrinter.h:204</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="ab7a4db66b02e6e176def3cab5ace07d9"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void arm_compute::test::print_tensor </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a> &amp;&#160;</td>
          <td class="paramname"><em>tensor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structarm__compute_1_1_i_o_format_info.xhtml">IOFormatInfo</a>&#160;</td>
          <td class="paramname"><em>info</em> = <code><a class="el" href="structarm__compute_1_1_i_o_format_info.xhtml">IOFormatInfo</a>(<a class="el" href="structarm__compute_1_1_i_o_format_info.xhtml#ae283722f31a4c59039f9abd44f10dbd0abbd47109890259c0127154db1af26c75">IOFormatInfo::PrintRegion::Full</a>)</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Helper to print tensor. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">tensor</td><td><a class="el" href="classarm__compute_1_1_tensor.xhtml" title="Basic implementation of the tensor interface. ">Tensor</a> to print. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td><a class="el" href="classarm__compute_1_1_tensor.xhtml" title="Basic implementation of the tensor interface. ">Tensor</a> name. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">info</td><td>Format information.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Empty <a class="el" href="classarm__compute_1_1_g_c_tensor.xhtml">GCTensor</a> with the specified shape and data type. </dd></dl>

<p>Definition at line <a class="el" href="_g_l_e_s___c_o_m_p_u_t_e_2_helper_8h_source.xhtml#l00082">82</a> of file <a class="el" href="_g_l_e_s___c_o_m_p_u_t_e_2_helper_8h_source.xhtml">Helper.h</a>.</p>

<p>References <a class="el" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">arm_compute::test::validation::info()</a>, <a class="el" href="classarm__compute_1_1_i_g_c_tensor.xhtml#a14c53d2d17be6fa8a2c9861527c7b002">IGCTensor::map()</a>, <a class="el" href="classarm__compute_1_1_i_tensor.xhtml#a0b092c86d6e0fb8a114281565953a02a">ITensor::print()</a>, and <a class="el" href="classarm__compute_1_1_i_g_c_tensor.xhtml#a1ffeb3b5abb3d61f62b58a391816201c">IGCTensor::unmap()</a>.</p>
<div class="fragment"><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;{</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;    std::ostringstream s;</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;    IGCTensor         &amp;t = <span class="keyword">dynamic_cast&lt;</span>IGCTensor &amp;<span class="keyword">&gt;</span>(tensor);</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;    t.map();</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    t.print(s, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">info</a>);</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    std::cout &lt;&lt; name &lt;&lt; <span class="stringliteral">&quot;:&quot;</span> &lt;&lt; std::endl;</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    std::cout &lt;&lt; s.str().c_str();</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    t.unmap();</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a096668313a9a819d54a2e65ec21ff0cc"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a096668313a9a819d54a2e65ec21ff0cc">arm_compute::test::validation::info</a></div><div class="ttdeci">src info() -&gt; set_format(Format::S16)</div></div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="ad93bb148a873f19ad7692756e59617f4"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">T arm_compute::test::round_half_even </td>
          <td>(</td>
          <td class="paramtype">T&#160;</td>
          <td class="paramname"><em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">T&#160;</td>
          <td class="paramname"><em>epsilon</em> = <code>std::numeric_limits&lt;T&gt;::epsilon()</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Round floating-point value with half value rounding to nearest even. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>floating-point value to be rounded. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">epsilon</td><td>precision.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Floating-point value of rounded <code>value</code>. </dd></dl>

<p>Definition at line <a class="el" href="tests_2_utils_8h_source.xhtml#l00085">85</a> of file <a class="el" href="tests_2_utils_8h_source.xhtml">Utils.h</a>.</p>

<p>References <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00927">arm_compute::test::fixed_point_arithmetic::detail::abs()</a>, <a class="el" href="_toolchain_support_8h_source.xhtml#l00289">arm_compute::support::cpp11::copysign()</a>, and <a class="el" href="_toolchain_support_8h_source.xhtml#l00257">arm_compute::support::cpp11::round()</a>.</p>

<p>Referenced by <a class="el" href="tests_2validation_2_u_n_i_t_2_utils_8cpp_source.xhtml#l00047">DATA_TEST_CASE()</a>.</p>
<div class="fragment"><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;{</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    T positive_value = <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ae115fc750a92fb6a5e094998b56fcc56">std::abs</a>(value);</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    T ipart          = 0;</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    std::modf(positive_value, &amp;ipart);</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    <span class="comment">// If &#39;value&#39; is exactly halfway between two integers</span></div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    <span class="keywordflow">if</span>(<a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ae115fc750a92fb6a5e094998b56fcc56">std::abs</a>(positive_value - (ipart + 0.5f)) &lt; epsilon)</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    {</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;        <span class="comment">// If &#39;ipart&#39; is even then return &#39;ipart&#39;</span></div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;        <span class="keywordflow">if</span>(std::fmod(ipart, 2.f) &lt; epsilon)</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;        {</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;            <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute_1_1support_1_1cpp11.xhtml#a28096f8372c0ad762864c790917375e2">support::cpp11::copysign</a>(ipart, value);</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;        }</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;        <span class="comment">// Else return the nearest even integer</span></div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute_1_1support_1_1cpp11.xhtml#a28096f8372c0ad762864c790917375e2">support::cpp11::copysign</a>(std::ceil(ipart + 0.5f), value);</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    }</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    <span class="comment">// Otherwise use the usual round to closest</span></div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute_1_1support_1_1cpp11.xhtml#a28096f8372c0ad762864c790917375e2">support::cpp11::copysign</a>(<a class="code" href="namespacearm__compute.xhtml#a6452ac376d4adb94d93a93d678bb6757">support::cpp11::round</a>(positive_value), value);</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1support_1_1cpp11_xhtml_a28096f8372c0ad762864c790917375e2"><div class="ttname"><a href="namespacearm__compute_1_1support_1_1cpp11.xhtml#a28096f8372c0ad762864c790917375e2">arm_compute::support::cpp11::copysign</a></div><div class="ttdeci">T copysign(T x, T y)</div><div class="ttdoc">Composes a floating point value with the magnitude of x and the sign of y. </div><div class="ttdef"><b>Definition:</b> <a href="_toolchain_support_8h_source.xhtml#l00289">ToolchainSupport.h:289</a></div></div>
<div class="ttc" id="namespacearm__compute_xhtml_a6452ac376d4adb94d93a93d678bb6757"><div class="ttname"><a href="namespacearm__compute.xhtml#a6452ac376d4adb94d93a93d678bb6757">arm_compute::round</a></div><div class="ttdeci">int round(float x, RoundingPolicy rounding_policy)</div><div class="ttdoc">Return a rounded value of x. </div></div>
<div class="ttc" id="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail_xhtml_ae115fc750a92fb6a5e094998b56fcc56"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ae115fc750a92fb6a5e094998b56fcc56">arm_compute::test::fixed_point_arithmetic::detail::abs</a></div><div class="ttdeci">fixed_point&lt; T &gt; abs(fixed_point&lt; T &gt; x)</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_fixed_point_8h_source.xhtml#l00927">FixedPoint.h:927</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="af4bcf30f8c56f547f66d61c7c5ae01db"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">T arm_compute::test::round_half_up </td>
          <td>(</td>
          <td class="paramtype">T&#160;</td>
          <td class="paramname"><em>value</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Round floating-point value with half value rounding to positive infinity. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>floating-point value to be rounded.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Floating-point value of rounded <code>value</code>. </dd></dl>

<p>Definition at line <a class="el" href="tests_2_utils_8h_source.xhtml#l00072">72</a> of file <a class="el" href="tests_2_utils_8h_source.xhtml">Utils.h</a>.</p>

<p>Referenced by <a class="el" href="tests_2validation_2_u_n_i_t_2_utils_8cpp_source.xhtml#l00040">DATA_TEST_CASE()</a>.</p>
<div class="fragment"><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;{</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;    <span class="keywordflow">return</span> std::floor(value + 0.5f);</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;}</div></div><!-- fragment -->
</div>
</div>
<a class="anchor" id="a4965b2f6821e0cf0afee738158bd8377"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">T arm_compute::test::saturate_cast </td>
          <td>(</td>
          <td class="paramtype">T&#160;</td>
          <td class="paramname"><em>val</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Saturate a value of type T against the numeric limits of type U. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">val</td><td>Value to be saturated.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>saturated value. </dd></dl>

<p>Definition at line <a class="el" href="tests_2_utils_8h_source.xhtml#l00373">373</a> of file <a class="el" href="tests_2_utils_8h_source.xhtml">Utils.h</a>.</p>

<p>References <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00902">arm_compute::test::fixed_point_arithmetic::detail::max()</a>.</p>

<p>Referenced by <a class="el" href="reference_2_absolute_difference_8cpp_source.xhtml#l00039">arm_compute::test::validation::reference::absolute_difference()</a>, <a class="el" href="reference_2_accumulate_8cpp_source.xhtml#l00039">arm_compute::test::validation::reference::accumulate()</a>, <a class="el" href="reference_2_accumulate_8cpp_source.xhtml#l00077">arm_compute::test::validation::reference::accumulate_squared()</a>, <a class="el" href="reference_2_convolution_8cpp_source.xhtml#l00038">arm_compute::test::validation::reference::convolution()</a>, <a class="el" href="validation_2reference_2_depthwise_convolution_layer_8cpp_source.xhtml#l00053">arm_compute::test::validation::reference::depthwise_convolution()</a>, <a class="el" href="validation_2reference_2_magnitude_8cpp_source.xhtml#l00035">arm_compute::test::validation::reference::magnitude()</a>, <a class="el" href="reference_2_non_linear_filter_8cpp_source.xhtml#l00036">arm_compute::test::validation::reference::non_linear_filter()</a>, and <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00349">constant_expr&lt; T &gt;::to_fixed()</a>.</p>
<div class="fragment"><div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;{</div><div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;    <span class="keywordflow">if</span>(val &gt; static_cast&lt;T&gt;(<a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ad91bb73431b4de1f4946ed949d444849">std::numeric_limits&lt;U&gt;::max</a>()))</div><div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;    {</div><div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;        val = <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(<a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ad91bb73431b4de1f4946ed949d444849">std::numeric_limits&lt;U&gt;::max</a>());</div><div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;    }</div><div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;    <span class="keywordflow">if</span>(val &lt; static_cast&lt;T&gt;(std::numeric_limits&lt;U&gt;::lowest()))</div><div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;    {</div><div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;        val = <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(std::numeric_limits&lt;U&gt;::lowest());</div><div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;    }</div><div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;    <span class="keywordflow">return</span> val;</div><div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail_xhtml_ad91bb73431b4de1f4946ed949d444849"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ad91bb73431b4de1f4946ed949d444849">arm_compute::test::fixed_point_arithmetic::detail::max</a></div><div class="ttdeci">fixed_point&lt; T &gt; max(fixed_point&lt; T &gt; x, fixed_point&lt; T &gt; y)</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_fixed_point_8h_source.xhtml#l00902">FixedPoint.h:902</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="a8103df0e6c416f55f40106aa49072b42"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structarm__compute_1_1_valid_region.xhtml">ValidRegion</a> arm_compute::test::shape_to_valid_region </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &amp;&#160;</td>
          <td class="paramname"><em>a_shape</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>border_undefined</em> = <code>false</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structarm__compute_1_1_border_size.xhtml">BorderSize</a>&#160;</td>
          <td class="paramname"><em>border_size</em> = <code><a class="el" href="structarm__compute_1_1_border_size.xhtml">BorderSize</a>(0)</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Create a valid region based on tensor shape, border mode and border size. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">a_shape</td><td>Shape used as size of the valid region. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">border_undefined</td><td>(Optional) Boolean indicating if the border mode is undefined. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">border_size</td><td>(Optional) Border size used to specify the region to exclude.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A valid region starting at (0, 0, ...) with size of <code>shape</code> if <code>border_undefined</code> is false; otherwise return A valid region starting at (<code>border_size.left</code>, <code>border_size.top</code>, ...) with reduced size of <code>shape</code>. </dd></dl>

<p>Definition at line <a class="el" href="tests_2_utils_8h_source.xhtml#l00222">222</a> of file <a class="el" href="tests_2_utils_8h_source.xhtml">Utils.h</a>.</p>

<p>References <a class="el" href="_error_8h_source.xhtml#l00328">ARM_COMPUTE_ERROR_ON</a>, <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00902">arm_compute::test::fixed_point_arithmetic::detail::max()</a>, <a class="el" href="_dimensions_8h_source.xhtml#l00122">Dimensions&lt; T &gt;::num_dimensions()</a>, <a class="el" href="_dimensions_8h_source.xhtml#l00074">Dimensions&lt; T &gt;::set()</a>, <a class="el" href="_tensor_shape_8h_source.xhtml#l00078">TensorShape::set()</a>, <a class="el" href="_c_l_2_convolution_8cpp_source.xhtml#l00133">arm_compute::test::validation::shape</a>, <a class="el" href="_dimensions_8h_source.xhtml#l00081">Dimensions&lt; T &gt;::x()</a>, and <a class="el" href="_dimensions_8h_source.xhtml#l00086">Dimensions&lt; T &gt;::y()</a>.</p>

<p>Referenced by <a class="el" href="validation_2_c_l_2_activation_layer_8cpp_source.xhtml#l00114">arm_compute::test::validation::DATA_TEST_CASE()</a>, <a class="el" href="reference_2_derivative_8cpp_source.xhtml#l00055">arm_compute::test::validation::reference::derivative()</a>, <a class="el" href="reference_2_fast_corners_8cpp_source.xhtml#l00152">arm_compute::test::validation::reference::fast_corners()</a>, <a class="el" href="validation_2_c_l_2_median3x3_8cpp_source.xhtml#l00091">arm_compute::test::validation::FIXTURE_DATA_TEST_CASE()</a>, <a class="el" href="reference_2_non_linear_filter_8cpp_source.xhtml#l00036">arm_compute::test::validation::reference::non_linear_filter()</a>, <a class="el" href="_non_maxima_suppression_8cpp_source.xhtml#l00038">arm_compute::test::validation::reference::non_maxima_suppression()</a>, <a class="el" href="reference_2_optical_flow_8cpp_source.xhtml#l00246">arm_compute::test::validation::reference::optical_flow()</a>, <a class="el" href="reference_2_scharr_8cpp_source.xhtml#l00062">arm_compute::test::validation::reference::scharr()</a>, <a class="el" href="reference_2_sobel_8cpp_source.xhtml#l00106">arm_compute::test::validation::reference::sobel()</a>, <a class="el" href="validation_2_c_l_2_depth_concatenate_layer_8cpp_source.xhtml#l00045">arm_compute::test::validation::TEST_CASE()</a>, <a class="el" href="_validation_8h_source.xhtml#l00368">arm_compute::test::validation::validate()</a>, and <a class="el" href="_validation_8h_source.xhtml#l00375">arm_compute::test::validation::validate_wrap()</a>.</p>
<div class="fragment"><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;{</div><div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;    ValidRegion valid_region{ Coordinates(), a_shape };</div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;</div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;    Coordinates &amp;anchor = valid_region.anchor;</div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;    TensorShape &amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a45cde9abb508c62d67c3bb2b9bf566a5">shape</a>  = valid_region.shape;</div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;</div><div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;    <span class="keywordflow">if</span>(border_undefined)</div><div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;    {</div><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;        <a class="code" href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(shape.num_dimensions() &lt; 2);</div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;        anchor.set(0, border_size.left);</div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;        anchor.set(1, border_size.top);</div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;</div><div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">int</span> valid_shape_x = <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ad91bb73431b4de1f4946ed949d444849">std::max</a>(0, static_cast&lt;int&gt;(shape.x()) - static_cast&lt;int&gt;(border_size.left) - <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(border_size.right));</div><div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">int</span> valid_shape_y = <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ad91bb73431b4de1f4946ed949d444849">std::max</a>(0, static_cast&lt;int&gt;(shape.y()) - static_cast&lt;int&gt;(border_size.top) - <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(border_size.bottom));</div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;</div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;        shape.set(0, valid_shape_x);</div><div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;        shape.set(1, valid_shape_y);</div><div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;    }</div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;</div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;    <span class="keywordflow">return</span> valid_region;</div><div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a45cde9abb508c62d67c3bb2b9bf566a5"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a45cde9abb508c62d67c3bb2b9bf566a5">arm_compute::test::validation::shape</a></div><div class="ttdeci">shape</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_convolution_8cpp_source.xhtml#l00133">Convolution.cpp:133</a></div></div>
<div class="ttc" id="_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_ON(cond)</div><div class="ttdoc">If the condition is true then an error message is printed and an exception thrown. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00328">Error.h:328</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail_xhtml_ad91bb73431b4de1f4946ed949d444849"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ad91bb73431b4de1f4946ed949d444849">arm_compute::test::fixed_point_arithmetic::detail::max</a></div><div class="ttdeci">fixed_point&lt; T &gt; max(fixed_point&lt; T &gt; x, fixed_point&lt; T &gt; y)</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_fixed_point_8h_source.xhtml#l00902">FixedPoint.h:902</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="a1177ef8061a8b46b5d79c1af93c12de1"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structarm__compute_1_1_valid_region.xhtml">ValidRegion</a> arm_compute::test::shape_to_valid_region_gaussian_pyramid_half </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &amp;&#160;</td>
          <td class="paramname"><em>a_shape</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structarm__compute_1_1_valid_region.xhtml">ValidRegion</a> &amp;&#160;</td>
          <td class="paramname"><em>a_valid_region</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>border_undefined</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Create a valid region for Gaussian <a class="el" href="classarm__compute_1_1_pyramid.xhtml" title="Basic implementation of the pyramid interface. ">Pyramid</a> Half based on tensor shape and valid region at level "i - 1" and border mode. </p>
<dl class="section note"><dt>Note</dt><dd>The border size is 2 in case of Gaussian <a class="el" href="classarm__compute_1_1_pyramid.xhtml" title="Basic implementation of the pyramid interface. ">Pyramid</a> Half</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">a_shape</td><td>Shape used at level "i - 1" of Gaussian <a class="el" href="classarm__compute_1_1_pyramid.xhtml" title="Basic implementation of the pyramid interface. ">Pyramid</a> Half </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">a_valid_region</td><td>Valid region used at level "i - 1" of Gaussian <a class="el" href="classarm__compute_1_1_pyramid.xhtml" title="Basic implementation of the pyramid interface. ">Pyramid</a> Half </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">border_undefined</td><td>(Optional) Boolean indicating if the border mode is undefined.</td></tr>
  </table>
  </dd>
</dl>
<p>return The valid region for the level "i" of Gaussian <a class="el" href="classarm__compute_1_1_pyramid.xhtml" title="Basic implementation of the pyramid interface. ">Pyramid</a> Half </p>

<p>Definition at line <a class="el" href="tests_2_utils_8h_source.xhtml#l00256">256</a> of file <a class="el" href="tests_2_utils_8h_source.xhtml">Utils.h</a>.</p>

<p>References <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00278">ValidRegion::anchor</a>, <a class="el" href="_error_8h_source.xhtml#l00328">ARM_COMPUTE_ERROR_ON</a>, <a class="el" href="tests_2validation_2_fixed_point_8h_source.xhtml#l00902">arm_compute::test::fixed_point_arithmetic::detail::max()</a>, <a class="el" href="_dimensions_8h_source.xhtml#l00122">Dimensions&lt; T &gt;::num_dimensions()</a>, <a class="el" href="_dimensions_8h_source.xhtml#l00074">Dimensions&lt; T &gt;::set()</a>, <a class="el" href="_tensor_shape_8h_source.xhtml#l00078">TensorShape::set()</a>, <a class="el" href="_c_l_2_convolution_8cpp_source.xhtml#l00133">arm_compute::test::validation::shape</a>, <a class="el" href="arm__compute_2core_2_types_8h_source.xhtml#l00279">ValidRegion::shape</a>, <a class="el" href="_dimensions_8h_source.xhtml#l00081">Dimensions&lt; T &gt;::x()</a>, and <a class="el" href="_dimensions_8h_source.xhtml#l00086">Dimensions&lt; T &gt;::y()</a>.</p>
<div class="fragment"><div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;{</div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;    constexpr <span class="keywordtype">int</span> border_size = 2;</div><div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;</div><div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;    ValidRegion valid_region{ Coordinates(), a_shape };</div><div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;</div><div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;    Coordinates &amp;anchor = valid_region.anchor;</div><div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;    TensorShape &amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a45cde9abb508c62d67c3bb2b9bf566a5">shape</a>  = valid_region.shape;</div><div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;</div><div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;    <span class="comment">// Compute tensor shape for level &quot;i&quot; of Gaussian Pyramid Half</span></div><div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;    <span class="comment">// dst_width  = (src_width + 1) * 0.5f</span></div><div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;    <span class="comment">// dst_height = (src_height + 1) * 0.5f</span></div><div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;    shape.set(0, (a_shape[0] + 1) * 0.5f);</div><div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;    shape.set(1, (a_shape[1] + 1) * 0.5f);</div><div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;</div><div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;    <span class="keywordflow">if</span>(border_undefined)</div><div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;    {</div><div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;        <a class="code" href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(shape.num_dimensions() &lt; 2);</div><div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;</div><div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;        <span class="comment">// Compute the left and top invalid borders</span></div><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;        <span class="keywordtype">float</span> invalid_border_left = <span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span>(a_valid_region.anchor.x() + border_size) / 2.0f;</div><div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;        <span class="keywordtype">float</span> invalid_border_top  = <span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span>(a_valid_region.anchor.y() + border_size) / 2.0f;</div><div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;</div><div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;        <span class="comment">// For the new anchor point we can have 2 cases:</span></div><div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;        <span class="comment">// 1) If the width/height of the tensor shape is odd, we have to take the ceil value of (a_valid_region.anchor.x() + border_size) / 2.0f or (a_valid_region.anchor.y() + border_size / 2.0f</span></div><div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;        <span class="comment">// 2) If the width/height of the tensor shape is even, we have to take the floor value of (a_valid_region.anchor.x() + border_size) / 2.0f or (a_valid_region.anchor.y() + border_size) / 2.0f</span></div><div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;        <span class="comment">// In this manner we should be able to propagate correctly the valid region along all levels of the pyramid</span></div><div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;        invalid_border_left = (a_shape[0] % 2) ? std::ceil(invalid_border_left) : std::floor(invalid_border_left);</div><div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;        invalid_border_top  = (a_shape[1] % 2) ? std::ceil(invalid_border_top) : std::floor(invalid_border_top);</div><div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;</div><div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;        <span class="comment">// Set the anchor point</span></div><div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;        anchor.set(0, static_cast&lt;int&gt;(invalid_border_left));</div><div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;        anchor.set(1, static_cast&lt;int&gt;(invalid_border_top));</div><div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;</div><div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;        <span class="comment">// Compute shape</span></div><div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;        <span class="comment">// Calculate the right and bottom invalid borders at the previous level of the pyramid</span></div><div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">float</span> prev_invalid_border_right  = <span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span>(a_shape[0] - (a_valid_region.anchor.x() + a_valid_region.shape[0]));</div><div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">float</span> prev_invalid_border_bottom = <span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span>(a_shape[1] - (a_valid_region.anchor.y() + a_valid_region.shape[1]));</div><div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;</div><div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;        <span class="comment">// Calculate the right and bottom invalid borders at the current level of the pyramid</span></div><div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">float</span> invalid_border_right  = std::ceil((prev_invalid_border_right + static_cast&lt;float&gt;(border_size)) / 2.0f);</div><div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">float</span> invalid_border_bottom = std::ceil((prev_invalid_border_bottom + static_cast&lt;float&gt;(border_size)) / 2.0f);</div><div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;</div><div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">int</span> valid_shape_x = <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ad91bb73431b4de1f4946ed949d444849">std::max</a>(0, static_cast&lt;int&gt;(shape.x()) - static_cast&lt;int&gt;(invalid_border_left) - <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(invalid_border_right));</div><div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">int</span> valid_shape_y = <a class="code" href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ad91bb73431b4de1f4946ed949d444849">std::max</a>(0, static_cast&lt;int&gt;(shape.y()) - static_cast&lt;int&gt;(invalid_border_top) - <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(invalid_border_bottom));</div><div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;</div><div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;        shape.set(0, valid_shape_x);</div><div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;        shape.set(1, valid_shape_y);</div><div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;    }</div><div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;</div><div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;    <span class="keywordflow">return</span> valid_region;</div><div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a45cde9abb508c62d67c3bb2b9bf566a5"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a45cde9abb508c62d67c3bb2b9bf566a5">arm_compute::test::validation::shape</a></div><div class="ttdeci">shape</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_convolution_8cpp_source.xhtml#l00133">Convolution.cpp:133</a></div></div>
<div class="ttc" id="_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_ON(cond)</div><div class="ttdoc">If the condition is true then an error message is printed and an exception thrown. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00328">Error.h:328</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail_xhtml_ad91bb73431b4de1f4946ed949d444849"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1fixed__point__arithmetic_1_1detail.xhtml#ad91bb73431b4de1f4946ed949d444849">arm_compute::test::fixed_point_arithmetic::detail::max</a></div><div class="ttdeci">fixed_point&lt; T &gt; max(fixed_point&lt; T &gt; x, fixed_point&lt; T &gt; y)</div><div class="ttdef"><b>Definition:</b> <a href="tests_2validation_2_fixed_point_8h_source.xhtml#l00902">FixedPoint.h:902</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="a1e6934e95738573214c2ce1d6648d116"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void arm_compute::test::store_value_with_data_type </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>ptr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">T&#160;</td>
          <td class="paramname"><em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a>&#160;</td>
          <td class="paramname"><em>data_type</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Write the value after casting the pointer according to <code>data_type</code>. </p>
<dl class="section warning"><dt>Warning</dt><dd>The type of the value must match the specified data type.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">ptr</td><td>Pointer to memory where the <code>value</code> will be written. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>Value that will be written. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">data_type</td><td>Data type that will be written. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="tests_2_utils_8h_source.xhtml#l00318">318</a> of file <a class="el" href="tests_2_utils_8h_source.xhtml">Utils.h</a>.</p>

<p>References <a class="el" href="_error_8h_source.xhtml#l00260">ARM_COMPUTE_ERROR</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a56d8353718e6fdc78b8d69078a2cdb94">arm_compute::F16</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a44ad4ef5a76e6aa6fb3e3fa079a54fda">arm_compute::F32</a>, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a1ad5f6f3069070ec4cbbdc94d5e61e0e">arm_compute::F64</a>, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6af14462d71aa842202c3e4b272c7ec924">arm_compute::QASYMM8</a>, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a48d877702a2957f5a932c43a357866f9">arm_compute::QS16</a>, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a11cde4d3551db3f9498d339a67189543">arm_compute::QS8</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a6e0b0886efb94aec797f6b830329b72c">arm_compute::S16</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58aa1e28eee0339658d39a8b4d325b56e9c">arm_compute::S32</a>, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a115dca124dc6423c7a400b8a8a0270cc">arm_compute::S64</a>, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6aafb0fced528eaac5fe170b763cda5975">arm_compute::S8</a>, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6abd7ef6d4f35bc7d05c559b65032f15d1">arm_compute::SIZET</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58aef9ef3ebca4d2b64b6ec83808bafa5f2">arm_compute::U16</a>, <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58ac8bd5bedff8ef192d39a962afc0e19ee">arm_compute::U32</a>, <a class="el" href="namespacearm__compute.xhtml#ad8ed01ff3ff33333d8e19db4d2818bb6a31d65cccd6593e4101db93fb878abcaa">arm_compute::U64</a>, and <a class="el" href="namespacearm__compute.xhtml#ab4e88c89b3b7ea1735996cc4def22d58a6669348b484e3008dca2bfa8e85e40b5">arm_compute::U8</a>.</p>

<p>Referenced by <a class="el" href="_assets_library_8h_source.xhtml#l00453">AssetsLibrary::fill()</a>, and <a class="el" href="_assets_library_8h_source.xhtml#l00424">AssetsLibrary::fill_borders_with_garbage()</a>.</p>
<div class="fragment"><div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;{</div><div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;    <span class="keywordflow">switch</span>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#ac2ad7f431e3446fddcd9b6b9f93c4c14">data_type</a>)</div><div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;    {</div><div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;        <span class="keywordflow">case</span> DataType::U8:</div><div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;        <span class="keywordflow">case</span> DataType::QASYMM8:</div><div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;            *<span class="keyword">reinterpret_cast&lt;</span>uint8_t *<span class="keyword">&gt;</span>(ptr) = value;</div><div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;        <span class="keywordflow">case</span> DataType::S8:</div><div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;        <span class="keywordflow">case</span> DataType::QS8:</div><div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;            *<span class="keyword">reinterpret_cast&lt;</span>int8_t *<span class="keyword">&gt;</span>(ptr) = value;</div><div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;        <span class="keywordflow">case</span> DataType::U16:</div><div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;            *<span class="keyword">reinterpret_cast&lt;</span>uint16_t *<span class="keyword">&gt;</span>(ptr) = value;</div><div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;        <span class="keywordflow">case</span> DataType::S16:</div><div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;        <span class="keywordflow">case</span> DataType::QS16:</div><div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;            *<span class="keyword">reinterpret_cast&lt;</span>int16_t *<span class="keyword">&gt;</span>(ptr) = value;</div><div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;        <span class="keywordflow">case</span> DataType::U32:</div><div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;            *<span class="keyword">reinterpret_cast&lt;</span>uint32_t *<span class="keyword">&gt;</span>(ptr) = value;</div><div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;        <span class="keywordflow">case</span> DataType::S32:</div><div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;            *<span class="keyword">reinterpret_cast&lt;</span>int32_t *<span class="keyword">&gt;</span>(ptr) = value;</div><div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;        <span class="keywordflow">case</span> DataType::U64:</div><div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;            *<span class="keyword">reinterpret_cast&lt;</span>uint64_t *<span class="keyword">&gt;</span>(ptr) = value;</div><div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;        <span class="keywordflow">case</span> DataType::S64:</div><div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;            *<span class="keyword">reinterpret_cast&lt;</span>int64_t *<span class="keyword">&gt;</span>(ptr) = value;</div><div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;        <span class="keywordflow">case</span> DataType::F16:</div><div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;            *<span class="keyword">reinterpret_cast&lt;</span><a class="code" href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">half</a> *<span class="keyword">&gt;</span>(ptr) = value;</div><div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;        <span class="keywordflow">case</span> DataType::F32:</div><div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;            *<span class="keyword">reinterpret_cast&lt;</span><span class="keywordtype">float</span> *<span class="keyword">&gt;</span>(ptr) = value;</div><div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;        <span class="keywordflow">case</span> DataType::F64:</div><div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;            *<span class="keyword">reinterpret_cast&lt;</span><span class="keywordtype">double</span> *<span class="keyword">&gt;</span>(ptr) = value;</div><div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;        <span class="keywordflow">case</span> DataType::SIZET:</div><div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;            *<span class="keyword">reinterpret_cast&lt;</span><span class="keywordtype">size_t</span> *<span class="keyword">&gt;</span>(ptr) = value;</div><div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;        <span class="keywordflow">default</span>:</div><div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;            <a class="code" href="_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a>(<span class="stringliteral">&quot;NOT SUPPORTED!&quot;</span>);</div><div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;    }</div><div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;}</div><div class="ttc" id="_error_8h_xhtml_a05b19c75afe9c24200a62b9724734bbd"><div class="ttname"><a href="_error_8h.xhtml#a05b19c75afe9c24200a62b9724734bbd">ARM_COMPUTE_ERROR</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR(...)</div><div class="ttdoc">Print the given message then throw an std::runtime_error. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00260">Error.h:260</a></div></div>
<div class="ttc" id="namespacearm__compute_xhtml_a73e2825fd61d349c5ca2f5313e3c8ea1"><div class="ttname"><a href="namespacearm__compute.xhtml#a73e2825fd61d349c5ca2f5313e3c8ea1">arm_compute::half</a></div><div class="ttdeci">half_float::half half</div><div class="ttdoc">16-bit floating point type </div><div class="ttdef"><b>Definition:</b> <a href="arm__compute_2core_2_types_8h_source.xhtml#l00044">Types.h:44</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_ac2ad7f431e3446fddcd9b6b9f93c4c14"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#ac2ad7f431e3446fddcd9b6b9f93c4c14">arm_compute::test::validation::data_type</a></div><div class="ttdeci">data_type</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00116">GEMM.cpp:116</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="a28edc8880596d14c099f3c2509efc8b3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void arm_compute::test::swap </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>&lt; U &gt; &amp;&#160;</td>
          <td class="paramname"><em>tensor1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classarm__compute_1_1test_1_1_simple_tensor.xhtml">SimpleTensor</a>&lt; U &gt; &amp;&#160;</td>
          <td class="paramname"><em>tensor2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in,out]</td><td class="paramname">tensor1</td><td><a class="el" href="classarm__compute_1_1_tensor.xhtml" title="Basic implementation of the tensor interface. ">Tensor</a> to be swapped. </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">tensor2</td><td><a class="el" href="classarm__compute_1_1_tensor.xhtml" title="Basic implementation of the tensor interface. ">Tensor</a> to be swapped. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="_simple_tensor_8h_source.xhtml#l00422">422</a> of file <a class="el" href="_simple_tensor_8h_source.xhtml">SimpleTensor.h</a>.</p>

<p>References <a class="el" href="_simple_tensor_8h_source.xhtml#l00422">SimpleTensor&lt; T &gt;::swap</a>.</p>

<p>Referenced by <a class="el" href="_graph_utils_8cpp_source.xhtml#l00071">CaffePreproccessor::CaffePreproccessor()</a>.</p>
<div class="fragment"><div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;{</div><div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;    <span class="comment">// Use unqualified call to swap to enable ADL. But make std::swap available</span></div><div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;    <span class="comment">// as backup.</span></div><div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;    <span class="keyword">using</span> <a class="code" href="namespacearm__compute_1_1test.xhtml#a28edc8880596d14c099f3c2509efc8b3">std::swap</a>;</div><div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;    <a class="code" href="namespacearm__compute_1_1test.xhtml#a28edc8880596d14c099f3c2509efc8b3">swap</a>(tensor1._shape, tensor2._shape);</div><div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;    <a class="code" href="namespacearm__compute_1_1test.xhtml#a28edc8880596d14c099f3c2509efc8b3">swap</a>(tensor1._format, tensor2._format);</div><div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;    <a class="code" href="namespacearm__compute_1_1test.xhtml#a28edc8880596d14c099f3c2509efc8b3">swap</a>(tensor1._data_type, tensor2._data_type);</div><div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;    <a class="code" href="namespacearm__compute_1_1test.xhtml#a28edc8880596d14c099f3c2509efc8b3">swap</a>(tensor1._num_channels, tensor2._num_channels);</div><div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;    <a class="code" href="namespacearm__compute_1_1test.xhtml#a28edc8880596d14c099f3c2509efc8b3">swap</a>(tensor1._fixed_point_position, tensor2._fixed_point_position);</div><div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;    <a class="code" href="namespacearm__compute_1_1test.xhtml#a28edc8880596d14c099f3c2509efc8b3">swap</a>(tensor1._quantization_info, tensor2._quantization_info);</div><div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;    <a class="code" href="namespacearm__compute_1_1test.xhtml#a28edc8880596d14c099f3c2509efc8b3">swap</a>(tensor1._buffer, tensor2._buffer);</div><div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_xhtml_a28edc8880596d14c099f3c2509efc8b3"><div class="ttname"><a href="namespacearm__compute_1_1test.xhtml#a28edc8880596d14c099f3c2509efc8b3">arm_compute::test::swap</a></div><div class="ttdeci">void swap(SimpleTensor&lt; U &gt; &amp;tensor1, SimpleTensor&lt; U &gt; &amp;tensor2)</div><div class="ttdef"><b>Definition:</b> <a href="_simple_tensor_8h_source.xhtml#l00422">SimpleTensor.h:422</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="a5967bb62a612be6b300aa96049a2166a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void arm_compute::test::sync_if_necessary </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Sync if necessary. </p>

<p>Definition at line <a class="el" href="tests_2_utils_8h_source.xhtml#l00736">736</a> of file <a class="el" href="tests_2_utils_8h_source.xhtml">Utils.h</a>.</p>

<p>References <a class="el" href="classarm__compute_1_1_c_l_scheduler.xhtml#a60f9a6836b628a7171914c4afe43b4a7">CLScheduler::get()</a>, <a class="el" href="namespacearm__compute.xhtml#aa4f4d7a58287017588fc338965873f14">arm_compute::opencl_is_available()</a>, and <a class="el" href="_c_l_scheduler_8h_source.xhtml#l00190">CLScheduler::sync()</a>.</p>
<div class="fragment"><div class="line"><a name="l00737"></a><span class="lineno">  737</span>&#160;{</div><div class="line"><a name="l00738"></a><span class="lineno">  738</span>&#160;<span class="preprocessor">#ifdef ARM_COMPUTE_CL</span></div><div class="line"><a name="l00739"></a><span class="lineno">  739</span>&#160;    <span class="keywordflow">if</span>(<a class="code" href="namespacearm__compute.xhtml#aa4f4d7a58287017588fc338965873f14">opencl_is_available</a>() &amp;&amp; std::is_same&lt;<span class="keyword">typename</span> std::decay&lt;TensorType&gt;::type, <a class="code" href="classarm__compute_1_1_c_l_tensor.xhtml">arm_compute::CLTensor</a>&gt;::value)</div><div class="line"><a name="l00740"></a><span class="lineno">  740</span>&#160;    {</div><div class="line"><a name="l00741"></a><span class="lineno">  741</span>&#160;        CLScheduler::get().sync();</div><div class="line"><a name="l00742"></a><span class="lineno">  742</span>&#160;    }</div><div class="line"><a name="l00743"></a><span class="lineno">  743</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* ARM_COMPUTE_CL */</span><span class="preprocessor"></span></div><div class="line"><a name="l00744"></a><span class="lineno">  744</span>&#160;}</div><div class="ttc" id="namespacearm__compute_xhtml_aa4f4d7a58287017588fc338965873f14"><div class="ttname"><a href="namespacearm__compute.xhtml#aa4f4d7a58287017588fc338965873f14">arm_compute::opencl_is_available</a></div><div class="ttdeci">bool opencl_is_available()</div><div class="ttdoc">Check if OpenCL is available. </div></div>
<div class="ttc" id="classarm__compute_1_1_c_l_tensor_xhtml"><div class="ttname"><a href="classarm__compute_1_1_c_l_tensor.xhtml">arm_compute::CLTensor</a></div><div class="ttdoc">Basic implementation of the OpenCL tensor interface. </div><div class="ttdef"><b>Definition:</b> <a href="_c_l_tensor_8h_source.xhtml#l00039">CLTensor.h:39</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="a619736e19838c20cac8f668ab13aae37"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void arm_compute::test::sync_tensor_if_necessary </td>
          <td>(</td>
          <td class="paramtype">TensorType &amp;&#160;</td>
          <td class="paramname"><em>tensor</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Sync tensor if necessary. </p>
<dl class="section note"><dt>Note</dt><dd>: If the destination tensor not being used on OpenGL ES, GPU will optimize out the operation.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">tensor</td><td><a class="el" href="classarm__compute_1_1_tensor.xhtml" title="Basic implementation of the tensor interface. ">Tensor</a> to be sync. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="tests_2_utils_8h_source.xhtml#l00753">753</a> of file <a class="el" href="tests_2_utils_8h_source.xhtml">Utils.h</a>.</p>

<p>References <a class="el" href="classarm__compute_1_1_i_g_c_tensor.xhtml#a14c53d2d17be6fa8a2c9861527c7b002">IGCTensor::map()</a>, <a class="el" href="namespacearm__compute.xhtml#a19c7b9bc5f36935ba40314907ffe54ce">arm_compute::opengles31_is_available()</a>, and <a class="el" href="classarm__compute_1_1_i_g_c_tensor.xhtml#a1ffeb3b5abb3d61f62b58a391816201c">IGCTensor::unmap()</a>.</p>
<div class="fragment"><div class="line"><a name="l00754"></a><span class="lineno">  754</span>&#160;{</div><div class="line"><a name="l00755"></a><span class="lineno">  755</span>&#160;<span class="preprocessor">#ifdef ARM_COMPUTE_GC</span></div><div class="line"><a name="l00756"></a><span class="lineno">  756</span>&#160;    <span class="keywordflow">if</span>(<a class="code" href="namespacearm__compute.xhtml#a19c7b9bc5f36935ba40314907ffe54ce">opengles31_is_available</a>() &amp;&amp; std::is_same&lt;<span class="keyword">typename</span> std::decay&lt;TensorType&gt;::type, <a class="code" href="classarm__compute_1_1_g_c_tensor.xhtml">arm_compute::GCTensor</a>&gt;::value)</div><div class="line"><a name="l00757"></a><span class="lineno">  757</span>&#160;    {</div><div class="line"><a name="l00758"></a><span class="lineno">  758</span>&#160;        <span class="comment">// Force sync the tensor by calling map and unmap.</span></div><div class="line"><a name="l00759"></a><span class="lineno">  759</span>&#160;        IGCTensor &amp;t = <span class="keyword">dynamic_cast&lt;</span>IGCTensor &amp;<span class="keyword">&gt;</span>(tensor);</div><div class="line"><a name="l00760"></a><span class="lineno">  760</span>&#160;        t.map();</div><div class="line"><a name="l00761"></a><span class="lineno">  761</span>&#160;        t.unmap();</div><div class="line"><a name="l00762"></a><span class="lineno">  762</span>&#160;    }</div><div class="line"><a name="l00763"></a><span class="lineno">  763</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* ARM_COMPUTE_GC */</span><span class="preprocessor"></span></div><div class="line"><a name="l00764"></a><span class="lineno">  764</span>&#160;}</div><div class="ttc" id="classarm__compute_1_1_g_c_tensor_xhtml"><div class="ttname"><a href="classarm__compute_1_1_g_c_tensor.xhtml">arm_compute::GCTensor</a></div><div class="ttdoc">Interface for OpenGL ES tensor. </div><div class="ttdef"><b>Definition:</b> <a href="_g_c_tensor_8h_source.xhtml#l00037">GCTensor.h:37</a></div></div>
<div class="ttc" id="namespacearm__compute_xhtml_a19c7b9bc5f36935ba40314907ffe54ce"><div class="ttname"><a href="namespacearm__compute.xhtml#a19c7b9bc5f36935ba40314907ffe54ce">arm_compute::opengles31_is_available</a></div><div class="ttdeci">bool opengles31_is_available()</div><div class="ttdoc">Check if the OpenGL ES 3.1 API is available at runtime. </div></div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="a5b67cbf475b1e1d3bec9b0b937fdafac"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::string arm_compute::test::tolower </td>
          <td>(</td>
          <td class="paramtype">std::string&#160;</td>
          <td class="paramname"><em>string</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Convert string to lower case. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">string</td><td>To be converted string.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Lower case string. </dd></dl>

<p>Definition at line <a class="el" href="tests_2framework_2_utils_8h_source.xhtml#l00147">147</a> of file <a class="el" href="tests_2framework_2_utils_8h_source.xhtml">Utils.h</a>.</p>

<p>References <a class="el" href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00123">arm_compute::test::validation::c</a>.</p>

<p>Referenced by <a class="el" href="_u_n_i_t_2_fixed_point_8cpp_source.xhtml#l00067">arm_compute::test::validation::DATA_TEST_CASE()</a>, <a class="el" href="_dataset_modes_8cpp_source.xhtml#l00036">arm_compute::test::framework::dataset_mode_from_name()</a>, <a class="el" href="_instruments_8cpp_source.xhtml#l00037">arm_compute::test::framework::instrument_type_from_name()</a>, <a class="el" href="_printers_8cpp_source.xhtml#l00037">arm_compute::test::framework::log_format_from_name()</a>, <a class="el" href="_exceptions_8cpp_source.xhtml#l00037">arm_compute::test::framework::log_level_from_name()</a>, and <a class="el" href="_command_line_parser_8cpp_source.xhtml#l00035">CommandLineParser::parse()</a>.</p>
<div class="fragment"><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;{</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;    std::transform(<span class="keywordtype">string</span>.begin(), <span class="keywordtype">string</span>.end(), <span class="keywordtype">string</span>.begin(), [](<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a497347573faa3778743ddf277f861094">c</a>)</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;    {</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="namespacearm__compute_1_1test.xhtml#a5b67cbf475b1e1d3bec9b0b937fdafac">std::tolower</a>(c);</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;    });</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;    <span class="keywordflow">return</span> string;</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;}</div><div class="ttc" id="namespacearm__compute_1_1test_xhtml_a5b67cbf475b1e1d3bec9b0b937fdafac"><div class="ttname"><a href="namespacearm__compute_1_1test.xhtml#a5b67cbf475b1e1d3bec9b0b937fdafac">arm_compute::test::tolower</a></div><div class="ttdeci">std::string tolower(std::string string)</div><div class="ttdoc">Convert string to lower case. </div><div class="ttdef"><b>Definition:</b> <a href="tests_2framework_2_utils_8h_source.xhtml#l00147">Utils.h:147</a></div></div>
<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a497347573faa3778743ddf277f861094"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a497347573faa3778743ddf277f861094">arm_compute::test::validation::c</a></div><div class="ttdeci">CLTensor c</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00123">GEMM.cpp:123</a></div></div>
</div><!-- fragment -->
</div>
</div>
<h2 class="groupheader">Variable Documentation</h2>
<a class="anchor" id="a71326f0909d77386e29b511e1990a11f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::unique_ptr&lt; <a class="el" href="classarm__compute_1_1test_1_1_assets_library.xhtml">AssetsLibrary</a> &gt; library</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="main_8cpp_source.xhtml#l00059">59</a> of file <a class="el" href="main_8cpp_source.xhtml">main.cpp</a>.</p>

<p>Referenced by <a class="el" href="reference_2_accumulate_8cpp_source.xhtml#l00039">arm_compute::test::validation::reference::accumulate()</a>, <a class="el" href="reference_2_accumulate_8cpp_source.xhtml#l00077">arm_compute::test::validation::reference::accumulate_squared()</a>, <a class="el" href="reference_2_accumulate_8cpp_source.xhtml#l00057">arm_compute::test::validation::reference::accumulate_weighted()</a>, <a class="el" href="_g_l_e_s___c_o_m_p_u_t_e_2_helper_8h_source.xhtml#l00062">create_tensor()</a>, <a class="el" href="validation_2_c_l_2_harris_corners_8cpp_source.xhtml#l00058">arm_compute::test::validation::DATA_TEST_CASE()</a>, <a class="el" href="_le_net5_network_8h_source.xhtml#l00157">LeNet5Network&lt; TensorType, Accessor, ActivationLayerFunction, ConvolutionLayerFunction, FullyConnectedLayerFunction, PoolingLayerFunction, SoftmaxLayerFunction &gt;::feed()</a>, <a class="el" href="_mobile_net_network_8h_source.xhtml#l00166">MobileNetNetwork&lt; TensorType, Accessor, ActivationLayerFunction, ConvolutionLayerFunction, DirectConvolutionLayerFunction, DepthwiseConvolutionLayerFunction, ReshapeFunction, PoolingLayerFunction &gt;::feed()</a>, <a class="el" href="_mobile_net_v1_network_8h_source.xhtml#l00202">MobileNetV1Network&lt; TensorType, Accessor, ActivationLayerFunction, BatchNormalizationLayerFunction, ConvolutionLayerFunction, DirectConvolutionLayerFunction, DepthwiseConvolutionFunction, ReshapeFunction, PoolingLayerFunction, SoftmaxLayerFunction &gt;::feed()</a>, <a class="el" href="_alex_net_network_8h_source.xhtml#l00422">AlexNetNetwork&lt; ITensorType, TensorType, SubTensorType, Accessor, ActivationLayerFunction, ConvolutionLayerFunction, DirectConvolutionLayerFunction, FullyConnectedLayerFunction, NormalizationLayerFunction, PoolingLayerFunction, SoftmaxLayerFunction &gt;::feed()</a>, <a class="el" href="_le_net5_network_8h_source.xhtml#l00141">LeNet5Network&lt; TensorType, Accessor, ActivationLayerFunction, ConvolutionLayerFunction, FullyConnectedLayerFunction, PoolingLayerFunction, SoftmaxLayerFunction &gt;::fill()</a>, <a class="el" href="_alex_net_network_8h_source.xhtml#l00405">AlexNetNetwork&lt; ITensorType, TensorType, SubTensorType, Accessor, ActivationLayerFunction, ConvolutionLayerFunction, DirectConvolutionLayerFunction, FullyConnectedLayerFunction, NormalizationLayerFunction, PoolingLayerFunction, SoftmaxLayerFunction &gt;::fill()</a>, <a class="el" href="tests_2validation_2_helpers_8h_source.xhtml#l00177">arm_compute::test::validation::fill_lookuptable()</a>, <a class="el" href="_helpers_8cpp_source.xhtml#l00035">arm_compute::test::validation::fill_mask_from_pattern()</a>, <a class="el" href="_le_net5_network_8h_source.xhtml#l00125">LeNet5Network&lt; TensorType, Accessor, ActivationLayerFunction, ConvolutionLayerFunction, FullyConnectedLayerFunction, PoolingLayerFunction, SoftmaxLayerFunction &gt;::fill_random()</a>, <a class="el" href="_mobile_net_network_8h_source.xhtml#l00142">MobileNetNetwork&lt; TensorType, Accessor, ActivationLayerFunction, ConvolutionLayerFunction, DirectConvolutionLayerFunction, DepthwiseConvolutionLayerFunction, ReshapeFunction, PoolingLayerFunction &gt;::fill_random()</a>, <a class="el" href="_mobile_net_v1_network_8h_source.xhtml#l00168">MobileNetV1Network&lt; TensorType, Accessor, ActivationLayerFunction, BatchNormalizationLayerFunction, ConvolutionLayerFunction, DirectConvolutionLayerFunction, DepthwiseConvolutionFunction, ReshapeFunction, PoolingLayerFunction, SoftmaxLayerFunction &gt;::fill_random()</a>, <a class="el" href="_alex_net_network_8h_source.xhtml#l00355">AlexNetNetwork&lt; ITensorType, TensorType, SubTensorType, Accessor, ActivationLayerFunction, ConvolutionLayerFunction, DirectConvolutionLayerFunction, FullyConnectedLayerFunction, NormalizationLayerFunction, PoolingLayerFunction, SoftmaxLayerFunction &gt;::fill_random()</a>, <a class="el" href="_n_e_o_n_2_helper_8h_source.xhtml#l00041">fill_tensors()</a>, <a class="el" href="tests_2validation_2reference_2_utils_8h_source.xhtml#l00126">arm_compute::test::validation::fill_warp_matrix()</a>, <a class="el" href="_c_l_2_accumulate_8cpp_source.xhtml#l00131">arm_compute::test::validation::FIXTURE_DATA_TEST_CASE()</a>, <a class="el" href="_helpers_8cpp_source.xhtml#l00116">arm_compute::test::validation::harris_corners_parameters()</a>, <a class="el" href="main_8cpp_source.xhtml#l00063">main()</a>, and <a class="el" href="_n_e_o_n_2_u_n_i_t_2_memory_manager_8cpp_source.xhtml#l00049">arm_compute::test::validation::TEST_CASE()</a>.</p>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="namespacearm__compute.xhtml">arm_compute</a></li><li class="navelem"><a class="el" href="namespacearm__compute_1_1test.xhtml">test</a></li>
    <li class="footer">Generated on Wed May 23 2018 11:36:43 for Compute Library by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.11 </li>
  </ul>
</div>
</body>
</html>
